package com.example.mb1.Shangcheng import android.content.Context import android.media.Image import android.os.Bundle import android.provider.MediaStore.Images import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView import androidx.fragment.app.viewModels import androidx.recyclerview.widget.GridLayoutManager import com.example.mb1.Apdater.GoodsApdater import com.example.mb1.Apdater.TypeApdater import com.example.mb1.Entity.GoodsEntity import com.example.mb1.Entity.TypeEntity import com.example.mb1.GlideUtil import com.example.mb1.R import com.example.mb1.base.BaseFragment import com.example.mb1.databinding.FragmentShangchengBinding import com.youth.banner.BannerConfig import com.youth.banner.loader.ImageLoader import dagger.hilt.android.AndroidEntryPoint @AndroidEntryPoint class ShangchengFragment : BaseFragment<FragmentShangchengBinding>() { private val mviewmodel:Shangchengviewmodel by viewModels() //分类 private lateinit var typeApdater: TypeApdater var typelis= mutableListOf<TypeEntity>() //商品列表 private lateinit var goodsApdater: GoodsApdater var goodlist= mutableListOf<GoodsEntity>() override fun initdata() { viewDataBinding.banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR) viewDataBinding.banner.setImageLoader(object :ImageLoader(){ override fun displayImage(context: Context?, path: Any?, imageView: ImageView?) { if (context!=null && path!=null && imageView!=null) { GlideUtil.logeimages(context,path as String,imageView) } } }) //分类 typeApdater= TypeApdater() viewDataBinding.recy.layoutManager=GridLayoutManager(requireContext(),5) viewDataBinding.recy.adapter=typeApdater //商品 goodsApdater= GoodsApdater() viewDataBinding.recy1.layoutManager=GridLayoutManager(requireContext(),2) viewDataBinding.recy1.adapter=goodsApdater } override fun initview() { mviewmodel.getbanners() mviewmodel.gettypes() mviewmodel.getgoodsss(0,1,10) } override fun getlayout(): Int { return R.layout.fragment_shangcheng } override fun handserver() { super.handserver() mviewmodel.bannerlivedata.observe(this){list-> var imagelist= mutableListOf<String>() list.forEach { if (!it.imagePath.isNullOrEmpty()) { imagelist.add(it.imagePath) } } viewDataBinding.banner.setImages(imagelist) viewDataBinding.banner.start() } mviewmodel.typeslivedata.observe(this) { if (typelis.size>0) { typelis.clear() } typelis.addAll(it) typeApdater.data=typelis typeApdater.notifyDataSetChanged() } mviewmodel.goodslivedata.observe(this) { if (goodlist.size>0) { goodlist.clear() } goodlist.addAll(it) goodsApdater.data=goodlist goodsApdater.notifyDataSetChanged() } } }
//主页面以及解商品,分类串的方法以及model,viewmodel,
//效果图如下
//这个只是一部分之后会是点击商品进入详情信息页面然后直接根据价格直接添加入购物车,由room数据库进行存储数据