Koltin34,深入理解kotlin协程

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 xKoltin34,深入理解kotlin协程
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”

上一篇:2022 做题记录


下一篇:SAS datapanel