ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Koltin34,深入理解kotlin协程

2022-01-25 14:06:40  阅读:157  来源: 互联网

标签:协程 val kotlin sellerView Koltin34 import layout android id


item.setOnClickListener {

val intent: Intent = Intent(context, BusinessActivity::class.java)

context.startActivity(intent)

}

}

fun bindData(seller: Seller) {

tvTitle.text = seller.name

//图片路径http://127.0.0.1:8090/image?name=takeout/imgs/seller/3.jpg

println(“seller.ensure====” + seller.ensure)

Picasso.with(context).load(host + seller.ensure).into(ivLogo)

rbScore.rating = seller.score.toFloat()

tvSale.text = “月售${seller.sale}单”

tvSendPrice.text = “¥ s e l l e r . s e n d P r i c e 起 送 / 配 送 费 ¥ {seller.sendPrice}起送/配送费¥ seller.sendPrice起送/配送费¥{seller.deliveryFee}”

}

}

//存放图片的url和名称

var url_maps: HashMap<String, Int> = HashMap()

//内部类,title的holder

inner class TitleHolder(item: View) : RecyclerView.ViewHolder(item) {

val sliderLayout: SliderLayout

init {

sliderLayout = item.findViewById(R.id.slider)

}

fun bindData(data: String) {

if (url_maps.size == 0) {

url_maps.put(“Hannibal”, R.mipmap.pic1);

url_maps.put(“Big Bang Theory”, R.mipmap.pic2);

url_maps.put(“House of Cards”, R.mipmap.pic3);

url_maps.put(“Game of Thrones”, R.mipmap.pic4);

for ((key, value) in url_maps) {

val textSlideView: TextSliderView = TextSliderView(context)

textSlideView.description(key).image(value)

sliderLayout.addSlider(textSlideView)

}

}

}

}

}

BusinessActivity.kt详情界面通过tab和viewpager进行交互

package com.example.takeout.ui.activity

import android.content.Context

import android.os.Bundle

import android.util.TypedValue

import androidx.appcompat.app.AppCompatActivity

import androidx.fragment.app.Fragment

import androidx.fragment.app.FragmentPagerAdapter

import com.example.takeout.R

import com.example.takeout.ui.fragment.CommentsFragment

import com.example.takeout.ui.fragment.GoodsFragment

import com.example.takeout.ui.fragment.SellerFragment

import kotlinx.android.synthetic.main.activity_business.*

class BusinessActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_business)

//微调底部的导航栏适配

if (checkDeviceHasNavigationBar(this)) {

fl_Container.setPadding(0, 0, 0, 48.dp2px())

}

vp.adapter = BusinessFragmentPagerAdapter()

tabs.setupWithViewPager(vp)

}

val fragments = listOf(GoodsFragment(), SellerFragment(), CommentsFragment())

val titles = listOf(“商品”, “商家”, “评论”)

/**

  • 把转化功能添加到Int类中作为扩展函数

*/

fun Int.dp2px(): Int {

return TypedValue.applyDimension(

TypedValue.COMPLEX_UNIT_DIP,

toFloat(), resources.displayMetrics

).toInt()

}

//获取是否存在NavigationBar

fun checkDeviceHasNavigationBar(context: Context): Boolean {

var hasNavigationBar = false

val rs = context.getResources()

val id = rs.getIdentifier(“config_showNavigationBar”, “bool”, “android”)

if (id > 0) {

hasNavigationBar = rs.getBoolean(id)

}

try {

val systemPropertiesClass = Class.forName(“android.os.SystemProperties”)

val m = systemPropertiesClass.getMethod(“get”, String::class.java)

val navBarOverride = m.invoke(systemPropertiesClass, “qemu.hw.mainkeys”) as String

if (“1” == navBarOverride) {

hasNavigationBar = false

} else if (“0” == navBarOverride) {

hasNavigationBar = true

}

} catch (e: Exception) {

}

return hasNavigationBar

}

inner class BusinessFragmentPagerAdapter : FragmentPagerAdapter(supportFragmentManager) {

override fun getPageTitle(position: Int): CharSequence {

return titles.get(position)

}

override fun getItem(position: Int): Fragment {

return fragments.get(position)

}

override fun getCount(): Int {

return titles.size

}

}

}

CommentsFragment.kt评论界面

package com.example.takeout.ui.fragment

import android.graphics.Color

import android.os.Bundle

import android.view.Gravity

import android.view.LayoutInflater

import android.view.View

import android.view.ViewGroup

import android.widget.TextView

import androidx.fragment.app.Fragment

/**

  • 详情页,评论界面

*/

class CommentsFragment : Fragment() {

override fun onCreateView(

inflater: LayoutInflater,

container: ViewGroup?,

savedInstanceState: Bundle?

): View? {

val sellerView = TextView(activity)

sellerView.text = “评论”

sellerView.gravity = Gravity.CENTER

sellerView.setTextColor(Color.BLACK)

return sellerView

}

}

GoodsFragment.kt商品界面

package com.example.takeout.ui.fragment

import android.graphics.Color

import android.os.Bundle

import android.view.Gravity

import android.view.LayoutInflater

import android.view.View

import android.view.ViewGroup

import android.widget.TextView

import androidx.fragment.app.Fragment

/**

  • 详情页商品列表界面

*/

class GoodsFragment : Fragment() {

override fun onCreateView(

inflater: LayoutInflater,

container: ViewGroup?,

savedInstanceState: Bundle?

): View? {

val sellerView = TextView(activity)

sellerView.text = “产品”

sellerView.gravity = Gravity.CENTER

sellerView.setTextColor(Color.BLACK)

return sellerView

}

}

SellerFragment.kt商家界面

package com.example.takeout.ui.fragment

import android.graphics.Color

import android.os.Bundle

import android.view.Gravity

import android.view.LayoutInflater

import android.view.View

import android.view.ViewGroup

import android.widget.TextView

import androidx.fragment.app.Fragment

/**

  • 详情页商家界面

*/

class SellerFragment : Fragment() {

override fun onCreateView(

inflater: LayoutInflater,

container: ViewGroup?,

savedInstanceState: Bundle?

): View? {

val sellerView = TextView(activity)

sellerView.text = “商家”

sellerView.gravity = Gravity.CENTER

sellerView.setTextColor(Color.BLACK)

return sellerView

}

}

activity_business.xml引入BottomSheetLayout了作为上面的布局

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout x
mlns:android=“http://schemas.android.com/apk/res/android”

xmlns:app=“http://schemas.android.com/apk/res-auto”

android:id="@+id/fl_Container"

android:layout_width=“match_parent”

android:layout_height=“match_parent”>

<LinearLayout

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:orientation=“vertical”>

<com.flipboard.bottomsheet.BottomSheetLayout

android:id="@+id/bottomSheetLayout"

android:layout_width=“match_parent”

android:layout_height=“0dp”

android:layout_weight=“1”>

<LinearLayout

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:fitsSystemWindows=“false”

android:orientation=“vertical”>

<LinearLayout

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:background="#f6f89191"

android:orientation=“horizontal”

android:paddingBottom=“10dp”

android:paddingTop=“25dp”>

<ImageButton

android:id="@+id/ib_back"

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_gravity=“center_vertical”

android:layout_marginLeft=“10dp”

android:background="@mipmap/abc_ic_ab_back_mtrl_am_alpha"/>

<TextView

android:id="@+id/tv_title"

android:layout_width=“0dp”

android:layout_height=“wrap_content”

android:layout_gravity=“center_vertical”

android:layout_marginLeft=“10dp”

android:layout_marginRight=“10dp”

android:layout_weight=“1”

android:singleLine=“true”

android:text=“田老师红烧肉(东北旺西路店)”

android:textColor="#fff"

android:textSize=“20sp”

android:textStyle=“bold”/>

<ImageButton

android:id="@+id/ib_menu"

android:layout_width=“wrap_content”

android:layout_marginLeft=“10dp”

android:background="@mipmap/abc_ic_ab_back_mtrl_am_alpha"/>

<TextView

android:id="@+id/tv_title"

android:layout_width=“0dp”

android:layout_height=“wrap_content”

android:layout_gravity=“center_vertical”

android:layout_marginLeft=“10dp”

android:layout_marginRight=“10dp”

android:layout_weight=“1”

android:singleLine=“true”

android:text=“田老师红烧肉(东北旺西路店)”

android:textColor="#fff"

android:textSize=“20sp”

android:textStyle=“bold”/>

<ImageButton

android:id="@+id/ib_menu"

android:layout_width=“wrap_content”

标签:协程,val,kotlin,sellerView,Koltin34,import,layout,android,id
来源: https://blog.csdn.net/m0_66264630/article/details/122684037

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有