diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
index c52f538..d93769b 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -3,12 +3,16 @@
import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
+import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
+import com.casic.br.model.RecommendModel
import com.casic.br.view.AllDeviceActivity
+import com.casic.br.view.device.FireplaceActivity
+import com.casic.br.view.device.RangeHoodActivity
+import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*
@@ -24,16 +28,25 @@
}
override fun initData() {
- //TODO 模拟数据 只显示前三个设备
+ //TODO 模拟数据
val deviceModels = ArrayList()
- for (i in 0..2) {
- val model = AddedDeviceModel()
- model.deviceName = "万家乐热水器"
- model.deviceModel = "D40-DM1"
- model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
- deviceModels.add(model)
- }
+ val model1 = AddedDeviceModel()
+ model1.deviceName = "万家乐热水器"
+ model1.deviceModel = "D40-DM1"
+ model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model1)
+ val model2 = AddedDeviceModel()
+ model2.deviceName = "万家乐油烟机"
+ model2.deviceModel = "CXW-320-W7"
+ model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model2)
+ val model3 = AddedDeviceModel()
+ model3.deviceName = "万家乐壁挂炉"
+ model3.deviceModel = "26-13A3L"
+ model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model3)
+
val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), 13f)
addedDeviceAdapter.setupDevice(deviceModels)
deviceRecyclerView.adapter = addedDeviceAdapter
@@ -46,13 +59,41 @@
override fun onItemClick(position: Int) {
//TODO 需要根据设备类型显示不同的页面
val deviceModel = deviceModels[position]
- deviceModel.deviceName.show(requireContext())
+ when {
+ deviceModel.deviceName.contains("热水器") -> {
+ requireContext().navigatePageTo(deviceModel.deviceName)
+ }
+ deviceModel.deviceName.contains("油烟机") -> {
+ requireContext().navigatePageTo()
+ }
+ deviceModel.deviceName.contains("壁挂炉") -> {
+ requireContext().navigatePageTo()
+ }
+ }
}
override fun onButtonClick(position: Int) {
}
})
+
+ //热门推荐
+ //TODO 模拟数据 只显示前三个设备
+ val recommendModels = ArrayList()
+ for (i in 0..2) {
+ val model = RecommendModel()
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ recommendModels.add(model)
+ }
+ val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
+ recommendRecyclerView.adapter = recommendAdapter
+ recommendAdapter.setOnItemClickListener(object : RecommendAdapter.OnItemClickListener {
+
+ override fun onItemClick(position: Int) {
+
+ }
+ })
}
override fun observeRequestState() {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
index c52f538..d93769b 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -3,12 +3,16 @@
import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
+import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
+import com.casic.br.model.RecommendModel
import com.casic.br.view.AllDeviceActivity
+import com.casic.br.view.device.FireplaceActivity
+import com.casic.br.view.device.RangeHoodActivity
+import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*
@@ -24,16 +28,25 @@
}
override fun initData() {
- //TODO 模拟数据 只显示前三个设备
+ //TODO 模拟数据
val deviceModels = ArrayList()
- for (i in 0..2) {
- val model = AddedDeviceModel()
- model.deviceName = "万家乐热水器"
- model.deviceModel = "D40-DM1"
- model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
- deviceModels.add(model)
- }
+ val model1 = AddedDeviceModel()
+ model1.deviceName = "万家乐热水器"
+ model1.deviceModel = "D40-DM1"
+ model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model1)
+ val model2 = AddedDeviceModel()
+ model2.deviceName = "万家乐油烟机"
+ model2.deviceModel = "CXW-320-W7"
+ model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model2)
+ val model3 = AddedDeviceModel()
+ model3.deviceName = "万家乐壁挂炉"
+ model3.deviceModel = "26-13A3L"
+ model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model3)
+
val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), 13f)
addedDeviceAdapter.setupDevice(deviceModels)
deviceRecyclerView.adapter = addedDeviceAdapter
@@ -46,13 +59,41 @@
override fun onItemClick(position: Int) {
//TODO 需要根据设备类型显示不同的页面
val deviceModel = deviceModels[position]
- deviceModel.deviceName.show(requireContext())
+ when {
+ deviceModel.deviceName.contains("热水器") -> {
+ requireContext().navigatePageTo(deviceModel.deviceName)
+ }
+ deviceModel.deviceName.contains("油烟机") -> {
+ requireContext().navigatePageTo()
+ }
+ deviceModel.deviceName.contains("壁挂炉") -> {
+ requireContext().navigatePageTo()
+ }
+ }
}
override fun onButtonClick(position: Int) {
}
})
+
+ //热门推荐
+ //TODO 模拟数据 只显示前三个设备
+ val recommendModels = ArrayList()
+ for (i in 0..2) {
+ val model = RecommendModel()
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ recommendModels.add(model)
+ }
+ val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
+ recommendRecyclerView.adapter = recommendAdapter
+ recommendAdapter.setOnItemClickListener(object : RecommendAdapter.OnItemClickListener {
+
+ override fun onItemClick(position: Int) {
+
+ }
+ })
}
override fun observeRequestState() {
diff --git a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
index cc69400..e3f40fd 100644
--- a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
@@ -5,7 +5,7 @@
import com.casic.br.adapter.SubViewPagerAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.fragment.shop.ComponentFragment
-import com.casic.br.fragment.shop.RecommendFragment
+import com.casic.br.fragment.shop.FavoriteFragment
import com.casic.br.fragment.shop.SmartHomeFragment
import com.casic.br.fragment.shop.SmartKitchenFragment
import com.casic.br.utils.LocaleConstant
@@ -18,7 +18,7 @@
private var fragmentPages: ArrayList = ArrayList()
init {
- fragmentPages.add(RecommendFragment())
+ fragmentPages.add(FavoriteFragment())
fragmentPages.add(SmartKitchenFragment())
fragmentPages.add(SmartHomeFragment())
fragmentPages.add(ComponentFragment())
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
index c52f538..d93769b 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -3,12 +3,16 @@
import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
+import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
+import com.casic.br.model.RecommendModel
import com.casic.br.view.AllDeviceActivity
+import com.casic.br.view.device.FireplaceActivity
+import com.casic.br.view.device.RangeHoodActivity
+import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*
@@ -24,16 +28,25 @@
}
override fun initData() {
- //TODO 模拟数据 只显示前三个设备
+ //TODO 模拟数据
val deviceModels = ArrayList()
- for (i in 0..2) {
- val model = AddedDeviceModel()
- model.deviceName = "万家乐热水器"
- model.deviceModel = "D40-DM1"
- model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
- deviceModels.add(model)
- }
+ val model1 = AddedDeviceModel()
+ model1.deviceName = "万家乐热水器"
+ model1.deviceModel = "D40-DM1"
+ model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model1)
+ val model2 = AddedDeviceModel()
+ model2.deviceName = "万家乐油烟机"
+ model2.deviceModel = "CXW-320-W7"
+ model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model2)
+ val model3 = AddedDeviceModel()
+ model3.deviceName = "万家乐壁挂炉"
+ model3.deviceModel = "26-13A3L"
+ model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model3)
+
val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), 13f)
addedDeviceAdapter.setupDevice(deviceModels)
deviceRecyclerView.adapter = addedDeviceAdapter
@@ -46,13 +59,41 @@
override fun onItemClick(position: Int) {
//TODO 需要根据设备类型显示不同的页面
val deviceModel = deviceModels[position]
- deviceModel.deviceName.show(requireContext())
+ when {
+ deviceModel.deviceName.contains("热水器") -> {
+ requireContext().navigatePageTo(deviceModel.deviceName)
+ }
+ deviceModel.deviceName.contains("油烟机") -> {
+ requireContext().navigatePageTo()
+ }
+ deviceModel.deviceName.contains("壁挂炉") -> {
+ requireContext().navigatePageTo()
+ }
+ }
}
override fun onButtonClick(position: Int) {
}
})
+
+ //热门推荐
+ //TODO 模拟数据 只显示前三个设备
+ val recommendModels = ArrayList()
+ for (i in 0..2) {
+ val model = RecommendModel()
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ recommendModels.add(model)
+ }
+ val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
+ recommendRecyclerView.adapter = recommendAdapter
+ recommendAdapter.setOnItemClickListener(object : RecommendAdapter.OnItemClickListener {
+
+ override fun onItemClick(position: Int) {
+
+ }
+ })
}
override fun observeRequestState() {
diff --git a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
index cc69400..e3f40fd 100644
--- a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
@@ -5,7 +5,7 @@
import com.casic.br.adapter.SubViewPagerAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.fragment.shop.ComponentFragment
-import com.casic.br.fragment.shop.RecommendFragment
+import com.casic.br.fragment.shop.FavoriteFragment
import com.casic.br.fragment.shop.SmartHomeFragment
import com.casic.br.fragment.shop.SmartKitchenFragment
import com.casic.br.utils.LocaleConstant
@@ -18,7 +18,7 @@
private var fragmentPages: ArrayList = ArrayList()
init {
- fragmentPages.add(RecommendFragment())
+ fragmentPages.add(FavoriteFragment())
fragmentPages.add(SmartKitchenFragment())
fragmentPages.add(SmartHomeFragment())
fragmentPages.add(ComponentFragment())
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
new file mode 100644
index 0000000..6caa727
--- /dev/null
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -0,0 +1,109 @@
+package com.casic.br.fragment.shop
+
+import com.bumptech.glide.Glide
+import com.casic.br.R
+import com.casic.br.adapter.FavoriteAdapter
+import com.casic.br.adapter.FeaturedGoodsAdapter
+import com.casic.br.model.BannerImageModel
+import com.casic.br.model.FavoriteModel
+import com.casic.br.model.FeaturedGoodsModel
+import com.casic.br.utils.GridItemDecoration
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.youth.banner.Banner
+import com.youth.banner.adapter.BannerImageAdapter
+import com.youth.banner.holder.BannerImageHolder
+import com.youth.banner.indicator.RectangleIndicator
+import com.youth.banner.transformer.*
+import kotlinx.android.synthetic.main.fragment_favorite.*
+import java.util.*
+
+class FavoriteFragment : KotlinBaseFragment() {
+
+ override fun initLayoutView(): Int = R.layout.fragment_favorite
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ //TODO 模拟数据
+ val imageModels = ArrayList()
+ for (i in 0..4) {
+ val model = BannerImageModel()
+ model.imageTitle = "测试轮播图"
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ imageModels.add(model)
+ }
+
+ val banner = shopBannerView
+ as Banner>
+ banner.apply {
+ setAdapter(object : BannerImageAdapter(imageModels) {
+ override fun onBindView(
+ holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.imageLink)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = RectangleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@FavoriteFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ "${imageModel.imageTitle}被点击了".show(requireContext())
+ }
+ }
+
+ //TODO 模拟数据
+ val goodsModels = ArrayList()
+ for (i in 0..5) {
+ val model = FeaturedGoodsModel()
+ model.deviceName = "******热水器"
+ model.deviceDesc = "描述文字"
+
+ goodsModels.add(model)
+ }
+ val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
+ goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
+ goodsRecyclerView.adapter = featuredGoodsAdapter
+ featuredGoodsAdapter.setOnGridItemClickListener(object :
+ FeaturedGoodsAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+
+ //TODO 模拟数据
+ val favoriteModels = ArrayList()
+ for (i in 0..5) {
+ val model = FavoriteModel()
+ model.deviceName = "智能厨房*****"
+ model.deviceDesc = "描述文字"
+
+ favoriteModels.add(model)
+ }
+ val favoriteAdapter = FavoriteAdapter(requireContext(), favoriteModels)
+ favoriteGridView.addItemDecoration(GridItemDecoration(requireContext()))
+ favoriteGridView.adapter = favoriteAdapter
+ favoriteAdapter.setOnGridItemClickListener(object :
+ FavoriteAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
index c52f538..d93769b 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -3,12 +3,16 @@
import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
+import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
+import com.casic.br.model.RecommendModel
import com.casic.br.view.AllDeviceActivity
+import com.casic.br.view.device.FireplaceActivity
+import com.casic.br.view.device.RangeHoodActivity
+import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*
@@ -24,16 +28,25 @@
}
override fun initData() {
- //TODO 模拟数据 只显示前三个设备
+ //TODO 模拟数据
val deviceModels = ArrayList()
- for (i in 0..2) {
- val model = AddedDeviceModel()
- model.deviceName = "万家乐热水器"
- model.deviceModel = "D40-DM1"
- model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
- deviceModels.add(model)
- }
+ val model1 = AddedDeviceModel()
+ model1.deviceName = "万家乐热水器"
+ model1.deviceModel = "D40-DM1"
+ model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model1)
+ val model2 = AddedDeviceModel()
+ model2.deviceName = "万家乐油烟机"
+ model2.deviceModel = "CXW-320-W7"
+ model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model2)
+ val model3 = AddedDeviceModel()
+ model3.deviceName = "万家乐壁挂炉"
+ model3.deviceModel = "26-13A3L"
+ model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model3)
+
val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), 13f)
addedDeviceAdapter.setupDevice(deviceModels)
deviceRecyclerView.adapter = addedDeviceAdapter
@@ -46,13 +59,41 @@
override fun onItemClick(position: Int) {
//TODO 需要根据设备类型显示不同的页面
val deviceModel = deviceModels[position]
- deviceModel.deviceName.show(requireContext())
+ when {
+ deviceModel.deviceName.contains("热水器") -> {
+ requireContext().navigatePageTo(deviceModel.deviceName)
+ }
+ deviceModel.deviceName.contains("油烟机") -> {
+ requireContext().navigatePageTo()
+ }
+ deviceModel.deviceName.contains("壁挂炉") -> {
+ requireContext().navigatePageTo()
+ }
+ }
}
override fun onButtonClick(position: Int) {
}
})
+
+ //热门推荐
+ //TODO 模拟数据 只显示前三个设备
+ val recommendModels = ArrayList()
+ for (i in 0..2) {
+ val model = RecommendModel()
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ recommendModels.add(model)
+ }
+ val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
+ recommendRecyclerView.adapter = recommendAdapter
+ recommendAdapter.setOnItemClickListener(object : RecommendAdapter.OnItemClickListener {
+
+ override fun onItemClick(position: Int) {
+
+ }
+ })
}
override fun observeRequestState() {
diff --git a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
index cc69400..e3f40fd 100644
--- a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
@@ -5,7 +5,7 @@
import com.casic.br.adapter.SubViewPagerAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.fragment.shop.ComponentFragment
-import com.casic.br.fragment.shop.RecommendFragment
+import com.casic.br.fragment.shop.FavoriteFragment
import com.casic.br.fragment.shop.SmartHomeFragment
import com.casic.br.fragment.shop.SmartKitchenFragment
import com.casic.br.utils.LocaleConstant
@@ -18,7 +18,7 @@
private var fragmentPages: ArrayList = ArrayList()
init {
- fragmentPages.add(RecommendFragment())
+ fragmentPages.add(FavoriteFragment())
fragmentPages.add(SmartKitchenFragment())
fragmentPages.add(SmartHomeFragment())
fragmentPages.add(ComponentFragment())
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
new file mode 100644
index 0000000..6caa727
--- /dev/null
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -0,0 +1,109 @@
+package com.casic.br.fragment.shop
+
+import com.bumptech.glide.Glide
+import com.casic.br.R
+import com.casic.br.adapter.FavoriteAdapter
+import com.casic.br.adapter.FeaturedGoodsAdapter
+import com.casic.br.model.BannerImageModel
+import com.casic.br.model.FavoriteModel
+import com.casic.br.model.FeaturedGoodsModel
+import com.casic.br.utils.GridItemDecoration
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.youth.banner.Banner
+import com.youth.banner.adapter.BannerImageAdapter
+import com.youth.banner.holder.BannerImageHolder
+import com.youth.banner.indicator.RectangleIndicator
+import com.youth.banner.transformer.*
+import kotlinx.android.synthetic.main.fragment_favorite.*
+import java.util.*
+
+class FavoriteFragment : KotlinBaseFragment() {
+
+ override fun initLayoutView(): Int = R.layout.fragment_favorite
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ //TODO 模拟数据
+ val imageModels = ArrayList()
+ for (i in 0..4) {
+ val model = BannerImageModel()
+ model.imageTitle = "测试轮播图"
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ imageModels.add(model)
+ }
+
+ val banner = shopBannerView
+ as Banner>
+ banner.apply {
+ setAdapter(object : BannerImageAdapter(imageModels) {
+ override fun onBindView(
+ holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.imageLink)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = RectangleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@FavoriteFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ "${imageModel.imageTitle}被点击了".show(requireContext())
+ }
+ }
+
+ //TODO 模拟数据
+ val goodsModels = ArrayList()
+ for (i in 0..5) {
+ val model = FeaturedGoodsModel()
+ model.deviceName = "******热水器"
+ model.deviceDesc = "描述文字"
+
+ goodsModels.add(model)
+ }
+ val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
+ goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
+ goodsRecyclerView.adapter = featuredGoodsAdapter
+ featuredGoodsAdapter.setOnGridItemClickListener(object :
+ FeaturedGoodsAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+
+ //TODO 模拟数据
+ val favoriteModels = ArrayList()
+ for (i in 0..5) {
+ val model = FavoriteModel()
+ model.deviceName = "智能厨房*****"
+ model.deviceDesc = "描述文字"
+
+ favoriteModels.add(model)
+ }
+ val favoriteAdapter = FavoriteAdapter(requireContext(), favoriteModels)
+ favoriteGridView.addItemDecoration(GridItemDecoration(requireContext()))
+ favoriteGridView.adapter = favoriteAdapter
+ favoriteAdapter.setOnGridItemClickListener(object :
+ FavoriteAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
deleted file mode 100644
index a013b9e..0000000
--- a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.casic.br.fragment.shop
-
-import com.bumptech.glide.Glide
-import com.casic.br.R
-import com.casic.br.adapter.FeaturedGoodsAdapter
-import com.casic.br.adapter.RecommendAdapter
-import com.casic.br.model.BannerImageModel
-import com.casic.br.model.FeaturedGoodsModel
-import com.casic.br.model.RecommendModel
-import com.casic.br.utils.GridItemDecoration
-import com.pengxh.kt.lite.base.KotlinBaseFragment
-import com.pengxh.kt.lite.extensions.show
-import com.youth.banner.Banner
-import com.youth.banner.adapter.BannerImageAdapter
-import com.youth.banner.holder.BannerImageHolder
-import com.youth.banner.indicator.RectangleIndicator
-import com.youth.banner.transformer.*
-import kotlinx.android.synthetic.main.fragment_recommend.*
-import java.util.*
-
-class RecommendFragment : KotlinBaseFragment() {
-
- override fun initLayoutView(): Int = R.layout.fragment_recommend
-
- override fun setupTopBarLayout() {
-
- }
-
- override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = shopBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = RectangleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@RecommendFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
-
- //TODO 模拟数据
- val goodsModels = ArrayList()
- for (i in 0..5) {
- val model = FeaturedGoodsModel()
- model.deviceName = "******热水器"
- model.deviceDesc = "描述文字"
-
- goodsModels.add(model)
- }
- val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
- goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
- goodsRecyclerView.adapter = featuredGoodsAdapter
- featuredGoodsAdapter.setOnGridItemClickListener(object :
- FeaturedGoodsAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
-
- //TODO 模拟数据
- val recommendModels = ArrayList()
- for (i in 0..5) {
- val model = RecommendModel()
- model.deviceName = "智能厨房*****"
- model.deviceDesc = "描述文字"
-
- recommendModels.add(model)
- }
- val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
- recommendGridView.addItemDecoration(GridItemDecoration(requireContext()))
- recommendGridView.adapter = recommendAdapter
- recommendAdapter.setOnGridItemClickListener(object :
- RecommendAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
- }
-
- override fun observeRequestState() {
-
- }
-
- override fun initEvent() {
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
index c52f538..d93769b 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -3,12 +3,16 @@
import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
+import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
+import com.casic.br.model.RecommendModel
import com.casic.br.view.AllDeviceActivity
+import com.casic.br.view.device.FireplaceActivity
+import com.casic.br.view.device.RangeHoodActivity
+import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*
@@ -24,16 +28,25 @@
}
override fun initData() {
- //TODO 模拟数据 只显示前三个设备
+ //TODO 模拟数据
val deviceModels = ArrayList()
- for (i in 0..2) {
- val model = AddedDeviceModel()
- model.deviceName = "万家乐热水器"
- model.deviceModel = "D40-DM1"
- model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
- deviceModels.add(model)
- }
+ val model1 = AddedDeviceModel()
+ model1.deviceName = "万家乐热水器"
+ model1.deviceModel = "D40-DM1"
+ model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model1)
+ val model2 = AddedDeviceModel()
+ model2.deviceName = "万家乐油烟机"
+ model2.deviceModel = "CXW-320-W7"
+ model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model2)
+ val model3 = AddedDeviceModel()
+ model3.deviceName = "万家乐壁挂炉"
+ model3.deviceModel = "26-13A3L"
+ model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model3)
+
val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), 13f)
addedDeviceAdapter.setupDevice(deviceModels)
deviceRecyclerView.adapter = addedDeviceAdapter
@@ -46,13 +59,41 @@
override fun onItemClick(position: Int) {
//TODO 需要根据设备类型显示不同的页面
val deviceModel = deviceModels[position]
- deviceModel.deviceName.show(requireContext())
+ when {
+ deviceModel.deviceName.contains("热水器") -> {
+ requireContext().navigatePageTo(deviceModel.deviceName)
+ }
+ deviceModel.deviceName.contains("油烟机") -> {
+ requireContext().navigatePageTo()
+ }
+ deviceModel.deviceName.contains("壁挂炉") -> {
+ requireContext().navigatePageTo()
+ }
+ }
}
override fun onButtonClick(position: Int) {
}
})
+
+ //热门推荐
+ //TODO 模拟数据 只显示前三个设备
+ val recommendModels = ArrayList()
+ for (i in 0..2) {
+ val model = RecommendModel()
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ recommendModels.add(model)
+ }
+ val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
+ recommendRecyclerView.adapter = recommendAdapter
+ recommendAdapter.setOnItemClickListener(object : RecommendAdapter.OnItemClickListener {
+
+ override fun onItemClick(position: Int) {
+
+ }
+ })
}
override fun observeRequestState() {
diff --git a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
index cc69400..e3f40fd 100644
--- a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
@@ -5,7 +5,7 @@
import com.casic.br.adapter.SubViewPagerAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.fragment.shop.ComponentFragment
-import com.casic.br.fragment.shop.RecommendFragment
+import com.casic.br.fragment.shop.FavoriteFragment
import com.casic.br.fragment.shop.SmartHomeFragment
import com.casic.br.fragment.shop.SmartKitchenFragment
import com.casic.br.utils.LocaleConstant
@@ -18,7 +18,7 @@
private var fragmentPages: ArrayList = ArrayList()
init {
- fragmentPages.add(RecommendFragment())
+ fragmentPages.add(FavoriteFragment())
fragmentPages.add(SmartKitchenFragment())
fragmentPages.add(SmartHomeFragment())
fragmentPages.add(ComponentFragment())
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
new file mode 100644
index 0000000..6caa727
--- /dev/null
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -0,0 +1,109 @@
+package com.casic.br.fragment.shop
+
+import com.bumptech.glide.Glide
+import com.casic.br.R
+import com.casic.br.adapter.FavoriteAdapter
+import com.casic.br.adapter.FeaturedGoodsAdapter
+import com.casic.br.model.BannerImageModel
+import com.casic.br.model.FavoriteModel
+import com.casic.br.model.FeaturedGoodsModel
+import com.casic.br.utils.GridItemDecoration
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.youth.banner.Banner
+import com.youth.banner.adapter.BannerImageAdapter
+import com.youth.banner.holder.BannerImageHolder
+import com.youth.banner.indicator.RectangleIndicator
+import com.youth.banner.transformer.*
+import kotlinx.android.synthetic.main.fragment_favorite.*
+import java.util.*
+
+class FavoriteFragment : KotlinBaseFragment() {
+
+ override fun initLayoutView(): Int = R.layout.fragment_favorite
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ //TODO 模拟数据
+ val imageModels = ArrayList()
+ for (i in 0..4) {
+ val model = BannerImageModel()
+ model.imageTitle = "测试轮播图"
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ imageModels.add(model)
+ }
+
+ val banner = shopBannerView
+ as Banner>
+ banner.apply {
+ setAdapter(object : BannerImageAdapter(imageModels) {
+ override fun onBindView(
+ holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.imageLink)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = RectangleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@FavoriteFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ "${imageModel.imageTitle}被点击了".show(requireContext())
+ }
+ }
+
+ //TODO 模拟数据
+ val goodsModels = ArrayList()
+ for (i in 0..5) {
+ val model = FeaturedGoodsModel()
+ model.deviceName = "******热水器"
+ model.deviceDesc = "描述文字"
+
+ goodsModels.add(model)
+ }
+ val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
+ goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
+ goodsRecyclerView.adapter = featuredGoodsAdapter
+ featuredGoodsAdapter.setOnGridItemClickListener(object :
+ FeaturedGoodsAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+
+ //TODO 模拟数据
+ val favoriteModels = ArrayList()
+ for (i in 0..5) {
+ val model = FavoriteModel()
+ model.deviceName = "智能厨房*****"
+ model.deviceDesc = "描述文字"
+
+ favoriteModels.add(model)
+ }
+ val favoriteAdapter = FavoriteAdapter(requireContext(), favoriteModels)
+ favoriteGridView.addItemDecoration(GridItemDecoration(requireContext()))
+ favoriteGridView.adapter = favoriteAdapter
+ favoriteAdapter.setOnGridItemClickListener(object :
+ FavoriteAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
deleted file mode 100644
index a013b9e..0000000
--- a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.casic.br.fragment.shop
-
-import com.bumptech.glide.Glide
-import com.casic.br.R
-import com.casic.br.adapter.FeaturedGoodsAdapter
-import com.casic.br.adapter.RecommendAdapter
-import com.casic.br.model.BannerImageModel
-import com.casic.br.model.FeaturedGoodsModel
-import com.casic.br.model.RecommendModel
-import com.casic.br.utils.GridItemDecoration
-import com.pengxh.kt.lite.base.KotlinBaseFragment
-import com.pengxh.kt.lite.extensions.show
-import com.youth.banner.Banner
-import com.youth.banner.adapter.BannerImageAdapter
-import com.youth.banner.holder.BannerImageHolder
-import com.youth.banner.indicator.RectangleIndicator
-import com.youth.banner.transformer.*
-import kotlinx.android.synthetic.main.fragment_recommend.*
-import java.util.*
-
-class RecommendFragment : KotlinBaseFragment() {
-
- override fun initLayoutView(): Int = R.layout.fragment_recommend
-
- override fun setupTopBarLayout() {
-
- }
-
- override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = shopBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = RectangleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@RecommendFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
-
- //TODO 模拟数据
- val goodsModels = ArrayList()
- for (i in 0..5) {
- val model = FeaturedGoodsModel()
- model.deviceName = "******热水器"
- model.deviceDesc = "描述文字"
-
- goodsModels.add(model)
- }
- val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
- goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
- goodsRecyclerView.adapter = featuredGoodsAdapter
- featuredGoodsAdapter.setOnGridItemClickListener(object :
- FeaturedGoodsAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
-
- //TODO 模拟数据
- val recommendModels = ArrayList()
- for (i in 0..5) {
- val model = RecommendModel()
- model.deviceName = "智能厨房*****"
- model.deviceDesc = "描述文字"
-
- recommendModels.add(model)
- }
- val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
- recommendGridView.addItemDecoration(GridItemDecoration(requireContext()))
- recommendGridView.adapter = recommendAdapter
- recommendAdapter.setOnGridItemClickListener(object :
- RecommendAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
- }
-
- override fun observeRequestState() {
-
- }
-
- override fun initEvent() {
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/model/FavoriteModel.java b/app/src/main/java/com/casic/br/model/FavoriteModel.java
new file mode 100644
index 0000000..ed9f2bb
--- /dev/null
+++ b/app/src/main/java/com/casic/br/model/FavoriteModel.java
@@ -0,0 +1,34 @@
+package com.casic.br.model;
+
+/**
+ * 猜你喜欢数据模型
+ */
+public class FavoriteModel {
+ private String deviceName;
+ private String deviceImage;
+ private String deviceDesc;
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getDeviceImage() {
+ return deviceImage;
+ }
+
+ public void setDeviceImage(String deviceImage) {
+ this.deviceImage = deviceImage;
+ }
+
+ public String getDeviceDesc() {
+ return deviceDesc;
+ }
+
+ public void setDeviceDesc(String deviceDesc) {
+ this.deviceDesc = deviceDesc;
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
index c52f538..d93769b 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -3,12 +3,16 @@
import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
+import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
+import com.casic.br.model.RecommendModel
import com.casic.br.view.AllDeviceActivity
+import com.casic.br.view.device.FireplaceActivity
+import com.casic.br.view.device.RangeHoodActivity
+import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*
@@ -24,16 +28,25 @@
}
override fun initData() {
- //TODO 模拟数据 只显示前三个设备
+ //TODO 模拟数据
val deviceModels = ArrayList()
- for (i in 0..2) {
- val model = AddedDeviceModel()
- model.deviceName = "万家乐热水器"
- model.deviceModel = "D40-DM1"
- model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
- deviceModels.add(model)
- }
+ val model1 = AddedDeviceModel()
+ model1.deviceName = "万家乐热水器"
+ model1.deviceModel = "D40-DM1"
+ model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model1)
+ val model2 = AddedDeviceModel()
+ model2.deviceName = "万家乐油烟机"
+ model2.deviceModel = "CXW-320-W7"
+ model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model2)
+ val model3 = AddedDeviceModel()
+ model3.deviceName = "万家乐壁挂炉"
+ model3.deviceModel = "26-13A3L"
+ model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model3)
+
val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), 13f)
addedDeviceAdapter.setupDevice(deviceModels)
deviceRecyclerView.adapter = addedDeviceAdapter
@@ -46,13 +59,41 @@
override fun onItemClick(position: Int) {
//TODO 需要根据设备类型显示不同的页面
val deviceModel = deviceModels[position]
- deviceModel.deviceName.show(requireContext())
+ when {
+ deviceModel.deviceName.contains("热水器") -> {
+ requireContext().navigatePageTo(deviceModel.deviceName)
+ }
+ deviceModel.deviceName.contains("油烟机") -> {
+ requireContext().navigatePageTo()
+ }
+ deviceModel.deviceName.contains("壁挂炉") -> {
+ requireContext().navigatePageTo()
+ }
+ }
}
override fun onButtonClick(position: Int) {
}
})
+
+ //热门推荐
+ //TODO 模拟数据 只显示前三个设备
+ val recommendModels = ArrayList()
+ for (i in 0..2) {
+ val model = RecommendModel()
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ recommendModels.add(model)
+ }
+ val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
+ recommendRecyclerView.adapter = recommendAdapter
+ recommendAdapter.setOnItemClickListener(object : RecommendAdapter.OnItemClickListener {
+
+ override fun onItemClick(position: Int) {
+
+ }
+ })
}
override fun observeRequestState() {
diff --git a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
index cc69400..e3f40fd 100644
--- a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
@@ -5,7 +5,7 @@
import com.casic.br.adapter.SubViewPagerAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.fragment.shop.ComponentFragment
-import com.casic.br.fragment.shop.RecommendFragment
+import com.casic.br.fragment.shop.FavoriteFragment
import com.casic.br.fragment.shop.SmartHomeFragment
import com.casic.br.fragment.shop.SmartKitchenFragment
import com.casic.br.utils.LocaleConstant
@@ -18,7 +18,7 @@
private var fragmentPages: ArrayList = ArrayList()
init {
- fragmentPages.add(RecommendFragment())
+ fragmentPages.add(FavoriteFragment())
fragmentPages.add(SmartKitchenFragment())
fragmentPages.add(SmartHomeFragment())
fragmentPages.add(ComponentFragment())
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
new file mode 100644
index 0000000..6caa727
--- /dev/null
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -0,0 +1,109 @@
+package com.casic.br.fragment.shop
+
+import com.bumptech.glide.Glide
+import com.casic.br.R
+import com.casic.br.adapter.FavoriteAdapter
+import com.casic.br.adapter.FeaturedGoodsAdapter
+import com.casic.br.model.BannerImageModel
+import com.casic.br.model.FavoriteModel
+import com.casic.br.model.FeaturedGoodsModel
+import com.casic.br.utils.GridItemDecoration
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.youth.banner.Banner
+import com.youth.banner.adapter.BannerImageAdapter
+import com.youth.banner.holder.BannerImageHolder
+import com.youth.banner.indicator.RectangleIndicator
+import com.youth.banner.transformer.*
+import kotlinx.android.synthetic.main.fragment_favorite.*
+import java.util.*
+
+class FavoriteFragment : KotlinBaseFragment() {
+
+ override fun initLayoutView(): Int = R.layout.fragment_favorite
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ //TODO 模拟数据
+ val imageModels = ArrayList()
+ for (i in 0..4) {
+ val model = BannerImageModel()
+ model.imageTitle = "测试轮播图"
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ imageModels.add(model)
+ }
+
+ val banner = shopBannerView
+ as Banner>
+ banner.apply {
+ setAdapter(object : BannerImageAdapter(imageModels) {
+ override fun onBindView(
+ holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.imageLink)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = RectangleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@FavoriteFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ "${imageModel.imageTitle}被点击了".show(requireContext())
+ }
+ }
+
+ //TODO 模拟数据
+ val goodsModels = ArrayList()
+ for (i in 0..5) {
+ val model = FeaturedGoodsModel()
+ model.deviceName = "******热水器"
+ model.deviceDesc = "描述文字"
+
+ goodsModels.add(model)
+ }
+ val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
+ goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
+ goodsRecyclerView.adapter = featuredGoodsAdapter
+ featuredGoodsAdapter.setOnGridItemClickListener(object :
+ FeaturedGoodsAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+
+ //TODO 模拟数据
+ val favoriteModels = ArrayList()
+ for (i in 0..5) {
+ val model = FavoriteModel()
+ model.deviceName = "智能厨房*****"
+ model.deviceDesc = "描述文字"
+
+ favoriteModels.add(model)
+ }
+ val favoriteAdapter = FavoriteAdapter(requireContext(), favoriteModels)
+ favoriteGridView.addItemDecoration(GridItemDecoration(requireContext()))
+ favoriteGridView.adapter = favoriteAdapter
+ favoriteAdapter.setOnGridItemClickListener(object :
+ FavoriteAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
deleted file mode 100644
index a013b9e..0000000
--- a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.casic.br.fragment.shop
-
-import com.bumptech.glide.Glide
-import com.casic.br.R
-import com.casic.br.adapter.FeaturedGoodsAdapter
-import com.casic.br.adapter.RecommendAdapter
-import com.casic.br.model.BannerImageModel
-import com.casic.br.model.FeaturedGoodsModel
-import com.casic.br.model.RecommendModel
-import com.casic.br.utils.GridItemDecoration
-import com.pengxh.kt.lite.base.KotlinBaseFragment
-import com.pengxh.kt.lite.extensions.show
-import com.youth.banner.Banner
-import com.youth.banner.adapter.BannerImageAdapter
-import com.youth.banner.holder.BannerImageHolder
-import com.youth.banner.indicator.RectangleIndicator
-import com.youth.banner.transformer.*
-import kotlinx.android.synthetic.main.fragment_recommend.*
-import java.util.*
-
-class RecommendFragment : KotlinBaseFragment() {
-
- override fun initLayoutView(): Int = R.layout.fragment_recommend
-
- override fun setupTopBarLayout() {
-
- }
-
- override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = shopBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = RectangleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@RecommendFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
-
- //TODO 模拟数据
- val goodsModels = ArrayList()
- for (i in 0..5) {
- val model = FeaturedGoodsModel()
- model.deviceName = "******热水器"
- model.deviceDesc = "描述文字"
-
- goodsModels.add(model)
- }
- val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
- goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
- goodsRecyclerView.adapter = featuredGoodsAdapter
- featuredGoodsAdapter.setOnGridItemClickListener(object :
- FeaturedGoodsAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
-
- //TODO 模拟数据
- val recommendModels = ArrayList()
- for (i in 0..5) {
- val model = RecommendModel()
- model.deviceName = "智能厨房*****"
- model.deviceDesc = "描述文字"
-
- recommendModels.add(model)
- }
- val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
- recommendGridView.addItemDecoration(GridItemDecoration(requireContext()))
- recommendGridView.adapter = recommendAdapter
- recommendAdapter.setOnGridItemClickListener(object :
- RecommendAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
- }
-
- override fun observeRequestState() {
-
- }
-
- override fun initEvent() {
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/model/FavoriteModel.java b/app/src/main/java/com/casic/br/model/FavoriteModel.java
new file mode 100644
index 0000000..ed9f2bb
--- /dev/null
+++ b/app/src/main/java/com/casic/br/model/FavoriteModel.java
@@ -0,0 +1,34 @@
+package com.casic.br.model;
+
+/**
+ * 猜你喜欢数据模型
+ */
+public class FavoriteModel {
+ private String deviceName;
+ private String deviceImage;
+ private String deviceDesc;
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getDeviceImage() {
+ return deviceImage;
+ }
+
+ public void setDeviceImage(String deviceImage) {
+ this.deviceImage = deviceImage;
+ }
+
+ public String getDeviceDesc() {
+ return deviceDesc;
+ }
+
+ public void setDeviceDesc(String deviceDesc) {
+ this.deviceDesc = deviceDesc;
+ }
+}
diff --git a/app/src/main/java/com/casic/br/model/RecommendModel.java b/app/src/main/java/com/casic/br/model/RecommendModel.java
index 3ef8b66..6e6502f 100644
--- a/app/src/main/java/com/casic/br/model/RecommendModel.java
+++ b/app/src/main/java/com/casic/br/model/RecommendModel.java
@@ -1,34 +1,13 @@
package com.casic.br.model;
-/**
- * 猜你喜欢数据模型
- */
public class RecommendModel {
- private String deviceName;
- private String deviceImage;
- private String deviceDesc;
+ private String imageLink;
- public String getDeviceName() {
- return deviceName;
+ public String getImageLink() {
+ return imageLink;
}
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getDeviceImage() {
- return deviceImage;
- }
-
- public void setDeviceImage(String deviceImage) {
- this.deviceImage = deviceImage;
- }
-
- public String getDeviceDesc() {
- return deviceDesc;
- }
-
- public void setDeviceDesc(String deviceDesc) {
- this.deviceDesc = deviceDesc;
+ public void setImageLink(String imageLink) {
+ this.imageLink = imageLink;
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
index c52f538..d93769b 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -3,12 +3,16 @@
import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
+import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
+import com.casic.br.model.RecommendModel
import com.casic.br.view.AllDeviceActivity
+import com.casic.br.view.device.FireplaceActivity
+import com.casic.br.view.device.RangeHoodActivity
+import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*
@@ -24,16 +28,25 @@
}
override fun initData() {
- //TODO 模拟数据 只显示前三个设备
+ //TODO 模拟数据
val deviceModels = ArrayList()
- for (i in 0..2) {
- val model = AddedDeviceModel()
- model.deviceName = "万家乐热水器"
- model.deviceModel = "D40-DM1"
- model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
- deviceModels.add(model)
- }
+ val model1 = AddedDeviceModel()
+ model1.deviceName = "万家乐热水器"
+ model1.deviceModel = "D40-DM1"
+ model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model1)
+ val model2 = AddedDeviceModel()
+ model2.deviceName = "万家乐油烟机"
+ model2.deviceModel = "CXW-320-W7"
+ model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model2)
+ val model3 = AddedDeviceModel()
+ model3.deviceName = "万家乐壁挂炉"
+ model3.deviceModel = "26-13A3L"
+ model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model3)
+
val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), 13f)
addedDeviceAdapter.setupDevice(deviceModels)
deviceRecyclerView.adapter = addedDeviceAdapter
@@ -46,13 +59,41 @@
override fun onItemClick(position: Int) {
//TODO 需要根据设备类型显示不同的页面
val deviceModel = deviceModels[position]
- deviceModel.deviceName.show(requireContext())
+ when {
+ deviceModel.deviceName.contains("热水器") -> {
+ requireContext().navigatePageTo(deviceModel.deviceName)
+ }
+ deviceModel.deviceName.contains("油烟机") -> {
+ requireContext().navigatePageTo()
+ }
+ deviceModel.deviceName.contains("壁挂炉") -> {
+ requireContext().navigatePageTo()
+ }
+ }
}
override fun onButtonClick(position: Int) {
}
})
+
+ //热门推荐
+ //TODO 模拟数据 只显示前三个设备
+ val recommendModels = ArrayList()
+ for (i in 0..2) {
+ val model = RecommendModel()
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ recommendModels.add(model)
+ }
+ val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
+ recommendRecyclerView.adapter = recommendAdapter
+ recommendAdapter.setOnItemClickListener(object : RecommendAdapter.OnItemClickListener {
+
+ override fun onItemClick(position: Int) {
+
+ }
+ })
}
override fun observeRequestState() {
diff --git a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
index cc69400..e3f40fd 100644
--- a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
@@ -5,7 +5,7 @@
import com.casic.br.adapter.SubViewPagerAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.fragment.shop.ComponentFragment
-import com.casic.br.fragment.shop.RecommendFragment
+import com.casic.br.fragment.shop.FavoriteFragment
import com.casic.br.fragment.shop.SmartHomeFragment
import com.casic.br.fragment.shop.SmartKitchenFragment
import com.casic.br.utils.LocaleConstant
@@ -18,7 +18,7 @@
private var fragmentPages: ArrayList = ArrayList()
init {
- fragmentPages.add(RecommendFragment())
+ fragmentPages.add(FavoriteFragment())
fragmentPages.add(SmartKitchenFragment())
fragmentPages.add(SmartHomeFragment())
fragmentPages.add(ComponentFragment())
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
new file mode 100644
index 0000000..6caa727
--- /dev/null
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -0,0 +1,109 @@
+package com.casic.br.fragment.shop
+
+import com.bumptech.glide.Glide
+import com.casic.br.R
+import com.casic.br.adapter.FavoriteAdapter
+import com.casic.br.adapter.FeaturedGoodsAdapter
+import com.casic.br.model.BannerImageModel
+import com.casic.br.model.FavoriteModel
+import com.casic.br.model.FeaturedGoodsModel
+import com.casic.br.utils.GridItemDecoration
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.youth.banner.Banner
+import com.youth.banner.adapter.BannerImageAdapter
+import com.youth.banner.holder.BannerImageHolder
+import com.youth.banner.indicator.RectangleIndicator
+import com.youth.banner.transformer.*
+import kotlinx.android.synthetic.main.fragment_favorite.*
+import java.util.*
+
+class FavoriteFragment : KotlinBaseFragment() {
+
+ override fun initLayoutView(): Int = R.layout.fragment_favorite
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ //TODO 模拟数据
+ val imageModels = ArrayList()
+ for (i in 0..4) {
+ val model = BannerImageModel()
+ model.imageTitle = "测试轮播图"
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ imageModels.add(model)
+ }
+
+ val banner = shopBannerView
+ as Banner>
+ banner.apply {
+ setAdapter(object : BannerImageAdapter(imageModels) {
+ override fun onBindView(
+ holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.imageLink)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = RectangleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@FavoriteFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ "${imageModel.imageTitle}被点击了".show(requireContext())
+ }
+ }
+
+ //TODO 模拟数据
+ val goodsModels = ArrayList()
+ for (i in 0..5) {
+ val model = FeaturedGoodsModel()
+ model.deviceName = "******热水器"
+ model.deviceDesc = "描述文字"
+
+ goodsModels.add(model)
+ }
+ val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
+ goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
+ goodsRecyclerView.adapter = featuredGoodsAdapter
+ featuredGoodsAdapter.setOnGridItemClickListener(object :
+ FeaturedGoodsAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+
+ //TODO 模拟数据
+ val favoriteModels = ArrayList()
+ for (i in 0..5) {
+ val model = FavoriteModel()
+ model.deviceName = "智能厨房*****"
+ model.deviceDesc = "描述文字"
+
+ favoriteModels.add(model)
+ }
+ val favoriteAdapter = FavoriteAdapter(requireContext(), favoriteModels)
+ favoriteGridView.addItemDecoration(GridItemDecoration(requireContext()))
+ favoriteGridView.adapter = favoriteAdapter
+ favoriteAdapter.setOnGridItemClickListener(object :
+ FavoriteAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
deleted file mode 100644
index a013b9e..0000000
--- a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.casic.br.fragment.shop
-
-import com.bumptech.glide.Glide
-import com.casic.br.R
-import com.casic.br.adapter.FeaturedGoodsAdapter
-import com.casic.br.adapter.RecommendAdapter
-import com.casic.br.model.BannerImageModel
-import com.casic.br.model.FeaturedGoodsModel
-import com.casic.br.model.RecommendModel
-import com.casic.br.utils.GridItemDecoration
-import com.pengxh.kt.lite.base.KotlinBaseFragment
-import com.pengxh.kt.lite.extensions.show
-import com.youth.banner.Banner
-import com.youth.banner.adapter.BannerImageAdapter
-import com.youth.banner.holder.BannerImageHolder
-import com.youth.banner.indicator.RectangleIndicator
-import com.youth.banner.transformer.*
-import kotlinx.android.synthetic.main.fragment_recommend.*
-import java.util.*
-
-class RecommendFragment : KotlinBaseFragment() {
-
- override fun initLayoutView(): Int = R.layout.fragment_recommend
-
- override fun setupTopBarLayout() {
-
- }
-
- override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = shopBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = RectangleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@RecommendFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
-
- //TODO 模拟数据
- val goodsModels = ArrayList()
- for (i in 0..5) {
- val model = FeaturedGoodsModel()
- model.deviceName = "******热水器"
- model.deviceDesc = "描述文字"
-
- goodsModels.add(model)
- }
- val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
- goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
- goodsRecyclerView.adapter = featuredGoodsAdapter
- featuredGoodsAdapter.setOnGridItemClickListener(object :
- FeaturedGoodsAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
-
- //TODO 模拟数据
- val recommendModels = ArrayList()
- for (i in 0..5) {
- val model = RecommendModel()
- model.deviceName = "智能厨房*****"
- model.deviceDesc = "描述文字"
-
- recommendModels.add(model)
- }
- val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
- recommendGridView.addItemDecoration(GridItemDecoration(requireContext()))
- recommendGridView.adapter = recommendAdapter
- recommendAdapter.setOnGridItemClickListener(object :
- RecommendAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
- }
-
- override fun observeRequestState() {
-
- }
-
- override fun initEvent() {
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/model/FavoriteModel.java b/app/src/main/java/com/casic/br/model/FavoriteModel.java
new file mode 100644
index 0000000..ed9f2bb
--- /dev/null
+++ b/app/src/main/java/com/casic/br/model/FavoriteModel.java
@@ -0,0 +1,34 @@
+package com.casic.br.model;
+
+/**
+ * 猜你喜欢数据模型
+ */
+public class FavoriteModel {
+ private String deviceName;
+ private String deviceImage;
+ private String deviceDesc;
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getDeviceImage() {
+ return deviceImage;
+ }
+
+ public void setDeviceImage(String deviceImage) {
+ this.deviceImage = deviceImage;
+ }
+
+ public String getDeviceDesc() {
+ return deviceDesc;
+ }
+
+ public void setDeviceDesc(String deviceDesc) {
+ this.deviceDesc = deviceDesc;
+ }
+}
diff --git a/app/src/main/java/com/casic/br/model/RecommendModel.java b/app/src/main/java/com/casic/br/model/RecommendModel.java
index 3ef8b66..6e6502f 100644
--- a/app/src/main/java/com/casic/br/model/RecommendModel.java
+++ b/app/src/main/java/com/casic/br/model/RecommendModel.java
@@ -1,34 +1,13 @@
package com.casic.br.model;
-/**
- * 猜你喜欢数据模型
- */
public class RecommendModel {
- private String deviceName;
- private String deviceImage;
- private String deviceDesc;
+ private String imageLink;
- public String getDeviceName() {
- return deviceName;
+ public String getImageLink() {
+ return imageLink;
}
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getDeviceImage() {
- return deviceImage;
- }
-
- public void setDeviceImage(String deviceImage) {
- this.deviceImage = deviceImage;
- }
-
- public String getDeviceDesc() {
- return deviceDesc;
- }
-
- public void setDeviceDesc(String deviceDesc) {
- this.deviceDesc = deviceDesc;
+ public void setImageLink(String imageLink) {
+ this.imageLink = imageLink;
}
}
diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
index 66cb1a4..1db7a3d 100644
--- a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
@@ -1,7 +1,38 @@
package com.casic.br.view.device
+import com.casic.br.R
+import com.casic.br.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_water_heater.*
+
/**
* 热水器
* */
-class WaterHeaterActivity {
+class WaterHeaterActivity : KotlinBaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_water_heater
+
+ override fun setupTopBarLayout() {
+ initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+
+ leftBackView.setOnClickListener { finish() }
+ titleView.text = intent.getStringExtra(Constant.INTENT_PARAM)
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ rightOperateView.setOnClickListener {
+
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
index c52f538..d93769b 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -3,12 +3,16 @@
import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
+import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
+import com.casic.br.model.RecommendModel
import com.casic.br.view.AllDeviceActivity
+import com.casic.br.view.device.FireplaceActivity
+import com.casic.br.view.device.RangeHoodActivity
+import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*
@@ -24,16 +28,25 @@
}
override fun initData() {
- //TODO 模拟数据 只显示前三个设备
+ //TODO 模拟数据
val deviceModels = ArrayList()
- for (i in 0..2) {
- val model = AddedDeviceModel()
- model.deviceName = "万家乐热水器"
- model.deviceModel = "D40-DM1"
- model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
- deviceModels.add(model)
- }
+ val model1 = AddedDeviceModel()
+ model1.deviceName = "万家乐热水器"
+ model1.deviceModel = "D40-DM1"
+ model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model1)
+ val model2 = AddedDeviceModel()
+ model2.deviceName = "万家乐油烟机"
+ model2.deviceModel = "CXW-320-W7"
+ model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model2)
+ val model3 = AddedDeviceModel()
+ model3.deviceName = "万家乐壁挂炉"
+ model3.deviceModel = "26-13A3L"
+ model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model3)
+
val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), 13f)
addedDeviceAdapter.setupDevice(deviceModels)
deviceRecyclerView.adapter = addedDeviceAdapter
@@ -46,13 +59,41 @@
override fun onItemClick(position: Int) {
//TODO 需要根据设备类型显示不同的页面
val deviceModel = deviceModels[position]
- deviceModel.deviceName.show(requireContext())
+ when {
+ deviceModel.deviceName.contains("热水器") -> {
+ requireContext().navigatePageTo(deviceModel.deviceName)
+ }
+ deviceModel.deviceName.contains("油烟机") -> {
+ requireContext().navigatePageTo()
+ }
+ deviceModel.deviceName.contains("壁挂炉") -> {
+ requireContext().navigatePageTo()
+ }
+ }
}
override fun onButtonClick(position: Int) {
}
})
+
+ //热门推荐
+ //TODO 模拟数据 只显示前三个设备
+ val recommendModels = ArrayList()
+ for (i in 0..2) {
+ val model = RecommendModel()
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ recommendModels.add(model)
+ }
+ val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
+ recommendRecyclerView.adapter = recommendAdapter
+ recommendAdapter.setOnItemClickListener(object : RecommendAdapter.OnItemClickListener {
+
+ override fun onItemClick(position: Int) {
+
+ }
+ })
}
override fun observeRequestState() {
diff --git a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
index cc69400..e3f40fd 100644
--- a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
@@ -5,7 +5,7 @@
import com.casic.br.adapter.SubViewPagerAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.fragment.shop.ComponentFragment
-import com.casic.br.fragment.shop.RecommendFragment
+import com.casic.br.fragment.shop.FavoriteFragment
import com.casic.br.fragment.shop.SmartHomeFragment
import com.casic.br.fragment.shop.SmartKitchenFragment
import com.casic.br.utils.LocaleConstant
@@ -18,7 +18,7 @@
private var fragmentPages: ArrayList = ArrayList()
init {
- fragmentPages.add(RecommendFragment())
+ fragmentPages.add(FavoriteFragment())
fragmentPages.add(SmartKitchenFragment())
fragmentPages.add(SmartHomeFragment())
fragmentPages.add(ComponentFragment())
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
new file mode 100644
index 0000000..6caa727
--- /dev/null
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -0,0 +1,109 @@
+package com.casic.br.fragment.shop
+
+import com.bumptech.glide.Glide
+import com.casic.br.R
+import com.casic.br.adapter.FavoriteAdapter
+import com.casic.br.adapter.FeaturedGoodsAdapter
+import com.casic.br.model.BannerImageModel
+import com.casic.br.model.FavoriteModel
+import com.casic.br.model.FeaturedGoodsModel
+import com.casic.br.utils.GridItemDecoration
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.youth.banner.Banner
+import com.youth.banner.adapter.BannerImageAdapter
+import com.youth.banner.holder.BannerImageHolder
+import com.youth.banner.indicator.RectangleIndicator
+import com.youth.banner.transformer.*
+import kotlinx.android.synthetic.main.fragment_favorite.*
+import java.util.*
+
+class FavoriteFragment : KotlinBaseFragment() {
+
+ override fun initLayoutView(): Int = R.layout.fragment_favorite
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ //TODO 模拟数据
+ val imageModels = ArrayList()
+ for (i in 0..4) {
+ val model = BannerImageModel()
+ model.imageTitle = "测试轮播图"
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ imageModels.add(model)
+ }
+
+ val banner = shopBannerView
+ as Banner>
+ banner.apply {
+ setAdapter(object : BannerImageAdapter(imageModels) {
+ override fun onBindView(
+ holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.imageLink)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = RectangleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@FavoriteFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ "${imageModel.imageTitle}被点击了".show(requireContext())
+ }
+ }
+
+ //TODO 模拟数据
+ val goodsModels = ArrayList()
+ for (i in 0..5) {
+ val model = FeaturedGoodsModel()
+ model.deviceName = "******热水器"
+ model.deviceDesc = "描述文字"
+
+ goodsModels.add(model)
+ }
+ val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
+ goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
+ goodsRecyclerView.adapter = featuredGoodsAdapter
+ featuredGoodsAdapter.setOnGridItemClickListener(object :
+ FeaturedGoodsAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+
+ //TODO 模拟数据
+ val favoriteModels = ArrayList()
+ for (i in 0..5) {
+ val model = FavoriteModel()
+ model.deviceName = "智能厨房*****"
+ model.deviceDesc = "描述文字"
+
+ favoriteModels.add(model)
+ }
+ val favoriteAdapter = FavoriteAdapter(requireContext(), favoriteModels)
+ favoriteGridView.addItemDecoration(GridItemDecoration(requireContext()))
+ favoriteGridView.adapter = favoriteAdapter
+ favoriteAdapter.setOnGridItemClickListener(object :
+ FavoriteAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
deleted file mode 100644
index a013b9e..0000000
--- a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.casic.br.fragment.shop
-
-import com.bumptech.glide.Glide
-import com.casic.br.R
-import com.casic.br.adapter.FeaturedGoodsAdapter
-import com.casic.br.adapter.RecommendAdapter
-import com.casic.br.model.BannerImageModel
-import com.casic.br.model.FeaturedGoodsModel
-import com.casic.br.model.RecommendModel
-import com.casic.br.utils.GridItemDecoration
-import com.pengxh.kt.lite.base.KotlinBaseFragment
-import com.pengxh.kt.lite.extensions.show
-import com.youth.banner.Banner
-import com.youth.banner.adapter.BannerImageAdapter
-import com.youth.banner.holder.BannerImageHolder
-import com.youth.banner.indicator.RectangleIndicator
-import com.youth.banner.transformer.*
-import kotlinx.android.synthetic.main.fragment_recommend.*
-import java.util.*
-
-class RecommendFragment : KotlinBaseFragment() {
-
- override fun initLayoutView(): Int = R.layout.fragment_recommend
-
- override fun setupTopBarLayout() {
-
- }
-
- override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = shopBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = RectangleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@RecommendFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
-
- //TODO 模拟数据
- val goodsModels = ArrayList()
- for (i in 0..5) {
- val model = FeaturedGoodsModel()
- model.deviceName = "******热水器"
- model.deviceDesc = "描述文字"
-
- goodsModels.add(model)
- }
- val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
- goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
- goodsRecyclerView.adapter = featuredGoodsAdapter
- featuredGoodsAdapter.setOnGridItemClickListener(object :
- FeaturedGoodsAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
-
- //TODO 模拟数据
- val recommendModels = ArrayList()
- for (i in 0..5) {
- val model = RecommendModel()
- model.deviceName = "智能厨房*****"
- model.deviceDesc = "描述文字"
-
- recommendModels.add(model)
- }
- val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
- recommendGridView.addItemDecoration(GridItemDecoration(requireContext()))
- recommendGridView.adapter = recommendAdapter
- recommendAdapter.setOnGridItemClickListener(object :
- RecommendAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
- }
-
- override fun observeRequestState() {
-
- }
-
- override fun initEvent() {
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/model/FavoriteModel.java b/app/src/main/java/com/casic/br/model/FavoriteModel.java
new file mode 100644
index 0000000..ed9f2bb
--- /dev/null
+++ b/app/src/main/java/com/casic/br/model/FavoriteModel.java
@@ -0,0 +1,34 @@
+package com.casic.br.model;
+
+/**
+ * 猜你喜欢数据模型
+ */
+public class FavoriteModel {
+ private String deviceName;
+ private String deviceImage;
+ private String deviceDesc;
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getDeviceImage() {
+ return deviceImage;
+ }
+
+ public void setDeviceImage(String deviceImage) {
+ this.deviceImage = deviceImage;
+ }
+
+ public String getDeviceDesc() {
+ return deviceDesc;
+ }
+
+ public void setDeviceDesc(String deviceDesc) {
+ this.deviceDesc = deviceDesc;
+ }
+}
diff --git a/app/src/main/java/com/casic/br/model/RecommendModel.java b/app/src/main/java/com/casic/br/model/RecommendModel.java
index 3ef8b66..6e6502f 100644
--- a/app/src/main/java/com/casic/br/model/RecommendModel.java
+++ b/app/src/main/java/com/casic/br/model/RecommendModel.java
@@ -1,34 +1,13 @@
package com.casic.br.model;
-/**
- * 猜你喜欢数据模型
- */
public class RecommendModel {
- private String deviceName;
- private String deviceImage;
- private String deviceDesc;
+ private String imageLink;
- public String getDeviceName() {
- return deviceName;
+ public String getImageLink() {
+ return imageLink;
}
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getDeviceImage() {
- return deviceImage;
- }
-
- public void setDeviceImage(String deviceImage) {
- this.deviceImage = deviceImage;
- }
-
- public String getDeviceDesc() {
- return deviceDesc;
- }
-
- public void setDeviceDesc(String deviceDesc) {
- this.deviceDesc = deviceDesc;
+ public void setImageLink(String imageLink) {
+ this.imageLink = imageLink;
}
}
diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
index 66cb1a4..1db7a3d 100644
--- a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
@@ -1,7 +1,38 @@
package com.casic.br.view.device
+import com.casic.br.R
+import com.casic.br.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_water_heater.*
+
/**
* 热水器
* */
-class WaterHeaterActivity {
+class WaterHeaterActivity : KotlinBaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_water_heater
+
+ override fun setupTopBarLayout() {
+ initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+
+ leftBackView.setOnClickListener { finish() }
+ titleView.text = intent.getStringExtra(Constant.INTENT_PARAM)
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ rightOperateView.setOnClickListener {
+
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bottom_text_color.xml b/app/src/main/res/drawable/bottom_text_color.xml
index b284ea3..604984e 100644
--- a/app/src/main/res/drawable/bottom_text_color.xml
+++ b/app/src/main/res/drawable/bottom_text_color.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
index c52f538..d93769b 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -3,12 +3,16 @@
import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
+import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
+import com.casic.br.model.RecommendModel
import com.casic.br.view.AllDeviceActivity
+import com.casic.br.view.device.FireplaceActivity
+import com.casic.br.view.device.RangeHoodActivity
+import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*
@@ -24,16 +28,25 @@
}
override fun initData() {
- //TODO 模拟数据 只显示前三个设备
+ //TODO 模拟数据
val deviceModels = ArrayList()
- for (i in 0..2) {
- val model = AddedDeviceModel()
- model.deviceName = "万家乐热水器"
- model.deviceModel = "D40-DM1"
- model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
- deviceModels.add(model)
- }
+ val model1 = AddedDeviceModel()
+ model1.deviceName = "万家乐热水器"
+ model1.deviceModel = "D40-DM1"
+ model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model1)
+ val model2 = AddedDeviceModel()
+ model2.deviceName = "万家乐油烟机"
+ model2.deviceModel = "CXW-320-W7"
+ model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model2)
+ val model3 = AddedDeviceModel()
+ model3.deviceName = "万家乐壁挂炉"
+ model3.deviceModel = "26-13A3L"
+ model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model3)
+
val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), 13f)
addedDeviceAdapter.setupDevice(deviceModels)
deviceRecyclerView.adapter = addedDeviceAdapter
@@ -46,13 +59,41 @@
override fun onItemClick(position: Int) {
//TODO 需要根据设备类型显示不同的页面
val deviceModel = deviceModels[position]
- deviceModel.deviceName.show(requireContext())
+ when {
+ deviceModel.deviceName.contains("热水器") -> {
+ requireContext().navigatePageTo(deviceModel.deviceName)
+ }
+ deviceModel.deviceName.contains("油烟机") -> {
+ requireContext().navigatePageTo()
+ }
+ deviceModel.deviceName.contains("壁挂炉") -> {
+ requireContext().navigatePageTo()
+ }
+ }
}
override fun onButtonClick(position: Int) {
}
})
+
+ //热门推荐
+ //TODO 模拟数据 只显示前三个设备
+ val recommendModels = ArrayList()
+ for (i in 0..2) {
+ val model = RecommendModel()
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ recommendModels.add(model)
+ }
+ val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
+ recommendRecyclerView.adapter = recommendAdapter
+ recommendAdapter.setOnItemClickListener(object : RecommendAdapter.OnItemClickListener {
+
+ override fun onItemClick(position: Int) {
+
+ }
+ })
}
override fun observeRequestState() {
diff --git a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
index cc69400..e3f40fd 100644
--- a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
@@ -5,7 +5,7 @@
import com.casic.br.adapter.SubViewPagerAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.fragment.shop.ComponentFragment
-import com.casic.br.fragment.shop.RecommendFragment
+import com.casic.br.fragment.shop.FavoriteFragment
import com.casic.br.fragment.shop.SmartHomeFragment
import com.casic.br.fragment.shop.SmartKitchenFragment
import com.casic.br.utils.LocaleConstant
@@ -18,7 +18,7 @@
private var fragmentPages: ArrayList = ArrayList()
init {
- fragmentPages.add(RecommendFragment())
+ fragmentPages.add(FavoriteFragment())
fragmentPages.add(SmartKitchenFragment())
fragmentPages.add(SmartHomeFragment())
fragmentPages.add(ComponentFragment())
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
new file mode 100644
index 0000000..6caa727
--- /dev/null
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -0,0 +1,109 @@
+package com.casic.br.fragment.shop
+
+import com.bumptech.glide.Glide
+import com.casic.br.R
+import com.casic.br.adapter.FavoriteAdapter
+import com.casic.br.adapter.FeaturedGoodsAdapter
+import com.casic.br.model.BannerImageModel
+import com.casic.br.model.FavoriteModel
+import com.casic.br.model.FeaturedGoodsModel
+import com.casic.br.utils.GridItemDecoration
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.youth.banner.Banner
+import com.youth.banner.adapter.BannerImageAdapter
+import com.youth.banner.holder.BannerImageHolder
+import com.youth.banner.indicator.RectangleIndicator
+import com.youth.banner.transformer.*
+import kotlinx.android.synthetic.main.fragment_favorite.*
+import java.util.*
+
+class FavoriteFragment : KotlinBaseFragment() {
+
+ override fun initLayoutView(): Int = R.layout.fragment_favorite
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ //TODO 模拟数据
+ val imageModels = ArrayList()
+ for (i in 0..4) {
+ val model = BannerImageModel()
+ model.imageTitle = "测试轮播图"
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ imageModels.add(model)
+ }
+
+ val banner = shopBannerView
+ as Banner>
+ banner.apply {
+ setAdapter(object : BannerImageAdapter(imageModels) {
+ override fun onBindView(
+ holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.imageLink)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = RectangleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@FavoriteFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ "${imageModel.imageTitle}被点击了".show(requireContext())
+ }
+ }
+
+ //TODO 模拟数据
+ val goodsModels = ArrayList()
+ for (i in 0..5) {
+ val model = FeaturedGoodsModel()
+ model.deviceName = "******热水器"
+ model.deviceDesc = "描述文字"
+
+ goodsModels.add(model)
+ }
+ val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
+ goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
+ goodsRecyclerView.adapter = featuredGoodsAdapter
+ featuredGoodsAdapter.setOnGridItemClickListener(object :
+ FeaturedGoodsAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+
+ //TODO 模拟数据
+ val favoriteModels = ArrayList()
+ for (i in 0..5) {
+ val model = FavoriteModel()
+ model.deviceName = "智能厨房*****"
+ model.deviceDesc = "描述文字"
+
+ favoriteModels.add(model)
+ }
+ val favoriteAdapter = FavoriteAdapter(requireContext(), favoriteModels)
+ favoriteGridView.addItemDecoration(GridItemDecoration(requireContext()))
+ favoriteGridView.adapter = favoriteAdapter
+ favoriteAdapter.setOnGridItemClickListener(object :
+ FavoriteAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
deleted file mode 100644
index a013b9e..0000000
--- a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.casic.br.fragment.shop
-
-import com.bumptech.glide.Glide
-import com.casic.br.R
-import com.casic.br.adapter.FeaturedGoodsAdapter
-import com.casic.br.adapter.RecommendAdapter
-import com.casic.br.model.BannerImageModel
-import com.casic.br.model.FeaturedGoodsModel
-import com.casic.br.model.RecommendModel
-import com.casic.br.utils.GridItemDecoration
-import com.pengxh.kt.lite.base.KotlinBaseFragment
-import com.pengxh.kt.lite.extensions.show
-import com.youth.banner.Banner
-import com.youth.banner.adapter.BannerImageAdapter
-import com.youth.banner.holder.BannerImageHolder
-import com.youth.banner.indicator.RectangleIndicator
-import com.youth.banner.transformer.*
-import kotlinx.android.synthetic.main.fragment_recommend.*
-import java.util.*
-
-class RecommendFragment : KotlinBaseFragment() {
-
- override fun initLayoutView(): Int = R.layout.fragment_recommend
-
- override fun setupTopBarLayout() {
-
- }
-
- override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = shopBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = RectangleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@RecommendFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
-
- //TODO 模拟数据
- val goodsModels = ArrayList()
- for (i in 0..5) {
- val model = FeaturedGoodsModel()
- model.deviceName = "******热水器"
- model.deviceDesc = "描述文字"
-
- goodsModels.add(model)
- }
- val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
- goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
- goodsRecyclerView.adapter = featuredGoodsAdapter
- featuredGoodsAdapter.setOnGridItemClickListener(object :
- FeaturedGoodsAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
-
- //TODO 模拟数据
- val recommendModels = ArrayList()
- for (i in 0..5) {
- val model = RecommendModel()
- model.deviceName = "智能厨房*****"
- model.deviceDesc = "描述文字"
-
- recommendModels.add(model)
- }
- val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
- recommendGridView.addItemDecoration(GridItemDecoration(requireContext()))
- recommendGridView.adapter = recommendAdapter
- recommendAdapter.setOnGridItemClickListener(object :
- RecommendAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
- }
-
- override fun observeRequestState() {
-
- }
-
- override fun initEvent() {
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/model/FavoriteModel.java b/app/src/main/java/com/casic/br/model/FavoriteModel.java
new file mode 100644
index 0000000..ed9f2bb
--- /dev/null
+++ b/app/src/main/java/com/casic/br/model/FavoriteModel.java
@@ -0,0 +1,34 @@
+package com.casic.br.model;
+
+/**
+ * 猜你喜欢数据模型
+ */
+public class FavoriteModel {
+ private String deviceName;
+ private String deviceImage;
+ private String deviceDesc;
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getDeviceImage() {
+ return deviceImage;
+ }
+
+ public void setDeviceImage(String deviceImage) {
+ this.deviceImage = deviceImage;
+ }
+
+ public String getDeviceDesc() {
+ return deviceDesc;
+ }
+
+ public void setDeviceDesc(String deviceDesc) {
+ this.deviceDesc = deviceDesc;
+ }
+}
diff --git a/app/src/main/java/com/casic/br/model/RecommendModel.java b/app/src/main/java/com/casic/br/model/RecommendModel.java
index 3ef8b66..6e6502f 100644
--- a/app/src/main/java/com/casic/br/model/RecommendModel.java
+++ b/app/src/main/java/com/casic/br/model/RecommendModel.java
@@ -1,34 +1,13 @@
package com.casic.br.model;
-/**
- * 猜你喜欢数据模型
- */
public class RecommendModel {
- private String deviceName;
- private String deviceImage;
- private String deviceDesc;
+ private String imageLink;
- public String getDeviceName() {
- return deviceName;
+ public String getImageLink() {
+ return imageLink;
}
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getDeviceImage() {
- return deviceImage;
- }
-
- public void setDeviceImage(String deviceImage) {
- this.deviceImage = deviceImage;
- }
-
- public String getDeviceDesc() {
- return deviceDesc;
- }
-
- public void setDeviceDesc(String deviceDesc) {
- this.deviceDesc = deviceDesc;
+ public void setImageLink(String imageLink) {
+ this.imageLink = imageLink;
}
}
diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
index 66cb1a4..1db7a3d 100644
--- a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
@@ -1,7 +1,38 @@
package com.casic.br.view.device
+import com.casic.br.R
+import com.casic.br.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_water_heater.*
+
/**
* 热水器
* */
-class WaterHeaterActivity {
+class WaterHeaterActivity : KotlinBaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_water_heater
+
+ override fun setupTopBarLayout() {
+ initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+
+ leftBackView.setOnClickListener { finish() }
+ titleView.text = intent.getStringExtra(Constant.INTENT_PARAM)
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ rightOperateView.setOnClickListener {
+
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bottom_text_color.xml b/app/src/main/res/drawable/bottom_text_color.xml
index b284ea3..604984e 100644
--- a/app/src/main/res/drawable/bottom_text_color.xml
+++ b/app/src/main/res/drawable/bottom_text_color.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/device_selector.xml b/app/src/main/res/drawable/device_selector.xml
index 559ea94..b804df5 100644
--- a/app/src/main/res/drawable/device_selector.xml
+++ b/app/src/main/res/drawable/device_selector.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
index c52f538..d93769b 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -3,12 +3,16 @@
import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
+import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
+import com.casic.br.model.RecommendModel
import com.casic.br.view.AllDeviceActivity
+import com.casic.br.view.device.FireplaceActivity
+import com.casic.br.view.device.RangeHoodActivity
+import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*
@@ -24,16 +28,25 @@
}
override fun initData() {
- //TODO 模拟数据 只显示前三个设备
+ //TODO 模拟数据
val deviceModels = ArrayList()
- for (i in 0..2) {
- val model = AddedDeviceModel()
- model.deviceName = "万家乐热水器"
- model.deviceModel = "D40-DM1"
- model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
- deviceModels.add(model)
- }
+ val model1 = AddedDeviceModel()
+ model1.deviceName = "万家乐热水器"
+ model1.deviceModel = "D40-DM1"
+ model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model1)
+ val model2 = AddedDeviceModel()
+ model2.deviceName = "万家乐油烟机"
+ model2.deviceModel = "CXW-320-W7"
+ model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model2)
+ val model3 = AddedDeviceModel()
+ model3.deviceName = "万家乐壁挂炉"
+ model3.deviceModel = "26-13A3L"
+ model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model3)
+
val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), 13f)
addedDeviceAdapter.setupDevice(deviceModels)
deviceRecyclerView.adapter = addedDeviceAdapter
@@ -46,13 +59,41 @@
override fun onItemClick(position: Int) {
//TODO 需要根据设备类型显示不同的页面
val deviceModel = deviceModels[position]
- deviceModel.deviceName.show(requireContext())
+ when {
+ deviceModel.deviceName.contains("热水器") -> {
+ requireContext().navigatePageTo(deviceModel.deviceName)
+ }
+ deviceModel.deviceName.contains("油烟机") -> {
+ requireContext().navigatePageTo()
+ }
+ deviceModel.deviceName.contains("壁挂炉") -> {
+ requireContext().navigatePageTo()
+ }
+ }
}
override fun onButtonClick(position: Int) {
}
})
+
+ //热门推荐
+ //TODO 模拟数据 只显示前三个设备
+ val recommendModels = ArrayList()
+ for (i in 0..2) {
+ val model = RecommendModel()
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ recommendModels.add(model)
+ }
+ val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
+ recommendRecyclerView.adapter = recommendAdapter
+ recommendAdapter.setOnItemClickListener(object : RecommendAdapter.OnItemClickListener {
+
+ override fun onItemClick(position: Int) {
+
+ }
+ })
}
override fun observeRequestState() {
diff --git a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
index cc69400..e3f40fd 100644
--- a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
@@ -5,7 +5,7 @@
import com.casic.br.adapter.SubViewPagerAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.fragment.shop.ComponentFragment
-import com.casic.br.fragment.shop.RecommendFragment
+import com.casic.br.fragment.shop.FavoriteFragment
import com.casic.br.fragment.shop.SmartHomeFragment
import com.casic.br.fragment.shop.SmartKitchenFragment
import com.casic.br.utils.LocaleConstant
@@ -18,7 +18,7 @@
private var fragmentPages: ArrayList = ArrayList()
init {
- fragmentPages.add(RecommendFragment())
+ fragmentPages.add(FavoriteFragment())
fragmentPages.add(SmartKitchenFragment())
fragmentPages.add(SmartHomeFragment())
fragmentPages.add(ComponentFragment())
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
new file mode 100644
index 0000000..6caa727
--- /dev/null
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -0,0 +1,109 @@
+package com.casic.br.fragment.shop
+
+import com.bumptech.glide.Glide
+import com.casic.br.R
+import com.casic.br.adapter.FavoriteAdapter
+import com.casic.br.adapter.FeaturedGoodsAdapter
+import com.casic.br.model.BannerImageModel
+import com.casic.br.model.FavoriteModel
+import com.casic.br.model.FeaturedGoodsModel
+import com.casic.br.utils.GridItemDecoration
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.youth.banner.Banner
+import com.youth.banner.adapter.BannerImageAdapter
+import com.youth.banner.holder.BannerImageHolder
+import com.youth.banner.indicator.RectangleIndicator
+import com.youth.banner.transformer.*
+import kotlinx.android.synthetic.main.fragment_favorite.*
+import java.util.*
+
+class FavoriteFragment : KotlinBaseFragment() {
+
+ override fun initLayoutView(): Int = R.layout.fragment_favorite
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ //TODO 模拟数据
+ val imageModels = ArrayList()
+ for (i in 0..4) {
+ val model = BannerImageModel()
+ model.imageTitle = "测试轮播图"
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ imageModels.add(model)
+ }
+
+ val banner = shopBannerView
+ as Banner>
+ banner.apply {
+ setAdapter(object : BannerImageAdapter(imageModels) {
+ override fun onBindView(
+ holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.imageLink)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = RectangleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@FavoriteFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ "${imageModel.imageTitle}被点击了".show(requireContext())
+ }
+ }
+
+ //TODO 模拟数据
+ val goodsModels = ArrayList()
+ for (i in 0..5) {
+ val model = FeaturedGoodsModel()
+ model.deviceName = "******热水器"
+ model.deviceDesc = "描述文字"
+
+ goodsModels.add(model)
+ }
+ val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
+ goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
+ goodsRecyclerView.adapter = featuredGoodsAdapter
+ featuredGoodsAdapter.setOnGridItemClickListener(object :
+ FeaturedGoodsAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+
+ //TODO 模拟数据
+ val favoriteModels = ArrayList()
+ for (i in 0..5) {
+ val model = FavoriteModel()
+ model.deviceName = "智能厨房*****"
+ model.deviceDesc = "描述文字"
+
+ favoriteModels.add(model)
+ }
+ val favoriteAdapter = FavoriteAdapter(requireContext(), favoriteModels)
+ favoriteGridView.addItemDecoration(GridItemDecoration(requireContext()))
+ favoriteGridView.adapter = favoriteAdapter
+ favoriteAdapter.setOnGridItemClickListener(object :
+ FavoriteAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
deleted file mode 100644
index a013b9e..0000000
--- a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.casic.br.fragment.shop
-
-import com.bumptech.glide.Glide
-import com.casic.br.R
-import com.casic.br.adapter.FeaturedGoodsAdapter
-import com.casic.br.adapter.RecommendAdapter
-import com.casic.br.model.BannerImageModel
-import com.casic.br.model.FeaturedGoodsModel
-import com.casic.br.model.RecommendModel
-import com.casic.br.utils.GridItemDecoration
-import com.pengxh.kt.lite.base.KotlinBaseFragment
-import com.pengxh.kt.lite.extensions.show
-import com.youth.banner.Banner
-import com.youth.banner.adapter.BannerImageAdapter
-import com.youth.banner.holder.BannerImageHolder
-import com.youth.banner.indicator.RectangleIndicator
-import com.youth.banner.transformer.*
-import kotlinx.android.synthetic.main.fragment_recommend.*
-import java.util.*
-
-class RecommendFragment : KotlinBaseFragment() {
-
- override fun initLayoutView(): Int = R.layout.fragment_recommend
-
- override fun setupTopBarLayout() {
-
- }
-
- override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = shopBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = RectangleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@RecommendFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
-
- //TODO 模拟数据
- val goodsModels = ArrayList()
- for (i in 0..5) {
- val model = FeaturedGoodsModel()
- model.deviceName = "******热水器"
- model.deviceDesc = "描述文字"
-
- goodsModels.add(model)
- }
- val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
- goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
- goodsRecyclerView.adapter = featuredGoodsAdapter
- featuredGoodsAdapter.setOnGridItemClickListener(object :
- FeaturedGoodsAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
-
- //TODO 模拟数据
- val recommendModels = ArrayList()
- for (i in 0..5) {
- val model = RecommendModel()
- model.deviceName = "智能厨房*****"
- model.deviceDesc = "描述文字"
-
- recommendModels.add(model)
- }
- val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
- recommendGridView.addItemDecoration(GridItemDecoration(requireContext()))
- recommendGridView.adapter = recommendAdapter
- recommendAdapter.setOnGridItemClickListener(object :
- RecommendAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
- }
-
- override fun observeRequestState() {
-
- }
-
- override fun initEvent() {
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/model/FavoriteModel.java b/app/src/main/java/com/casic/br/model/FavoriteModel.java
new file mode 100644
index 0000000..ed9f2bb
--- /dev/null
+++ b/app/src/main/java/com/casic/br/model/FavoriteModel.java
@@ -0,0 +1,34 @@
+package com.casic.br.model;
+
+/**
+ * 猜你喜欢数据模型
+ */
+public class FavoriteModel {
+ private String deviceName;
+ private String deviceImage;
+ private String deviceDesc;
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getDeviceImage() {
+ return deviceImage;
+ }
+
+ public void setDeviceImage(String deviceImage) {
+ this.deviceImage = deviceImage;
+ }
+
+ public String getDeviceDesc() {
+ return deviceDesc;
+ }
+
+ public void setDeviceDesc(String deviceDesc) {
+ this.deviceDesc = deviceDesc;
+ }
+}
diff --git a/app/src/main/java/com/casic/br/model/RecommendModel.java b/app/src/main/java/com/casic/br/model/RecommendModel.java
index 3ef8b66..6e6502f 100644
--- a/app/src/main/java/com/casic/br/model/RecommendModel.java
+++ b/app/src/main/java/com/casic/br/model/RecommendModel.java
@@ -1,34 +1,13 @@
package com.casic.br.model;
-/**
- * 猜你喜欢数据模型
- */
public class RecommendModel {
- private String deviceName;
- private String deviceImage;
- private String deviceDesc;
+ private String imageLink;
- public String getDeviceName() {
- return deviceName;
+ public String getImageLink() {
+ return imageLink;
}
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getDeviceImage() {
- return deviceImage;
- }
-
- public void setDeviceImage(String deviceImage) {
- this.deviceImage = deviceImage;
- }
-
- public String getDeviceDesc() {
- return deviceDesc;
- }
-
- public void setDeviceDesc(String deviceDesc) {
- this.deviceDesc = deviceDesc;
+ public void setImageLink(String imageLink) {
+ this.imageLink = imageLink;
}
}
diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
index 66cb1a4..1db7a3d 100644
--- a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
@@ -1,7 +1,38 @@
package com.casic.br.view.device
+import com.casic.br.R
+import com.casic.br.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_water_heater.*
+
/**
* 热水器
* */
-class WaterHeaterActivity {
+class WaterHeaterActivity : KotlinBaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_water_heater
+
+ override fun setupTopBarLayout() {
+ initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+
+ leftBackView.setOnClickListener { finish() }
+ titleView.text = intent.getStringExtra(Constant.INTENT_PARAM)
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ rightOperateView.setOnClickListener {
+
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bottom_text_color.xml b/app/src/main/res/drawable/bottom_text_color.xml
index b284ea3..604984e 100644
--- a/app/src/main/res/drawable/bottom_text_color.xml
+++ b/app/src/main/res/drawable/bottom_text_color.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/device_selector.xml b/app/src/main/res/drawable/device_selector.xml
index 559ea94..b804df5 100644
--- a/app/src/main/res/drawable/device_selector.xml
+++ b/app/src/main/res/drawable/device_selector.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/home_selector.xml b/app/src/main/res/drawable/home_selector.xml
index 559ea94..7c8ec4f 100644
--- a/app/src/main/res/drawable/home_selector.xml
+++ b/app/src/main/res/drawable/home_selector.xml
@@ -1,5 +1,5 @@
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
index c52f538..d93769b 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -3,12 +3,16 @@
import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
+import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
+import com.casic.br.model.RecommendModel
import com.casic.br.view.AllDeviceActivity
+import com.casic.br.view.device.FireplaceActivity
+import com.casic.br.view.device.RangeHoodActivity
+import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*
@@ -24,16 +28,25 @@
}
override fun initData() {
- //TODO 模拟数据 只显示前三个设备
+ //TODO 模拟数据
val deviceModels = ArrayList()
- for (i in 0..2) {
- val model = AddedDeviceModel()
- model.deviceName = "万家乐热水器"
- model.deviceModel = "D40-DM1"
- model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
- deviceModels.add(model)
- }
+ val model1 = AddedDeviceModel()
+ model1.deviceName = "万家乐热水器"
+ model1.deviceModel = "D40-DM1"
+ model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model1)
+ val model2 = AddedDeviceModel()
+ model2.deviceName = "万家乐油烟机"
+ model2.deviceModel = "CXW-320-W7"
+ model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model2)
+ val model3 = AddedDeviceModel()
+ model3.deviceName = "万家乐壁挂炉"
+ model3.deviceModel = "26-13A3L"
+ model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model3)
+
val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), 13f)
addedDeviceAdapter.setupDevice(deviceModels)
deviceRecyclerView.adapter = addedDeviceAdapter
@@ -46,13 +59,41 @@
override fun onItemClick(position: Int) {
//TODO 需要根据设备类型显示不同的页面
val deviceModel = deviceModels[position]
- deviceModel.deviceName.show(requireContext())
+ when {
+ deviceModel.deviceName.contains("热水器") -> {
+ requireContext().navigatePageTo(deviceModel.deviceName)
+ }
+ deviceModel.deviceName.contains("油烟机") -> {
+ requireContext().navigatePageTo()
+ }
+ deviceModel.deviceName.contains("壁挂炉") -> {
+ requireContext().navigatePageTo()
+ }
+ }
}
override fun onButtonClick(position: Int) {
}
})
+
+ //热门推荐
+ //TODO 模拟数据 只显示前三个设备
+ val recommendModels = ArrayList()
+ for (i in 0..2) {
+ val model = RecommendModel()
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ recommendModels.add(model)
+ }
+ val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
+ recommendRecyclerView.adapter = recommendAdapter
+ recommendAdapter.setOnItemClickListener(object : RecommendAdapter.OnItemClickListener {
+
+ override fun onItemClick(position: Int) {
+
+ }
+ })
}
override fun observeRequestState() {
diff --git a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
index cc69400..e3f40fd 100644
--- a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
@@ -5,7 +5,7 @@
import com.casic.br.adapter.SubViewPagerAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.fragment.shop.ComponentFragment
-import com.casic.br.fragment.shop.RecommendFragment
+import com.casic.br.fragment.shop.FavoriteFragment
import com.casic.br.fragment.shop.SmartHomeFragment
import com.casic.br.fragment.shop.SmartKitchenFragment
import com.casic.br.utils.LocaleConstant
@@ -18,7 +18,7 @@
private var fragmentPages: ArrayList = ArrayList()
init {
- fragmentPages.add(RecommendFragment())
+ fragmentPages.add(FavoriteFragment())
fragmentPages.add(SmartKitchenFragment())
fragmentPages.add(SmartHomeFragment())
fragmentPages.add(ComponentFragment())
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
new file mode 100644
index 0000000..6caa727
--- /dev/null
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -0,0 +1,109 @@
+package com.casic.br.fragment.shop
+
+import com.bumptech.glide.Glide
+import com.casic.br.R
+import com.casic.br.adapter.FavoriteAdapter
+import com.casic.br.adapter.FeaturedGoodsAdapter
+import com.casic.br.model.BannerImageModel
+import com.casic.br.model.FavoriteModel
+import com.casic.br.model.FeaturedGoodsModel
+import com.casic.br.utils.GridItemDecoration
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.youth.banner.Banner
+import com.youth.banner.adapter.BannerImageAdapter
+import com.youth.banner.holder.BannerImageHolder
+import com.youth.banner.indicator.RectangleIndicator
+import com.youth.banner.transformer.*
+import kotlinx.android.synthetic.main.fragment_favorite.*
+import java.util.*
+
+class FavoriteFragment : KotlinBaseFragment() {
+
+ override fun initLayoutView(): Int = R.layout.fragment_favorite
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ //TODO 模拟数据
+ val imageModels = ArrayList()
+ for (i in 0..4) {
+ val model = BannerImageModel()
+ model.imageTitle = "测试轮播图"
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ imageModels.add(model)
+ }
+
+ val banner = shopBannerView
+ as Banner>
+ banner.apply {
+ setAdapter(object : BannerImageAdapter(imageModels) {
+ override fun onBindView(
+ holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.imageLink)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = RectangleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@FavoriteFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ "${imageModel.imageTitle}被点击了".show(requireContext())
+ }
+ }
+
+ //TODO 模拟数据
+ val goodsModels = ArrayList()
+ for (i in 0..5) {
+ val model = FeaturedGoodsModel()
+ model.deviceName = "******热水器"
+ model.deviceDesc = "描述文字"
+
+ goodsModels.add(model)
+ }
+ val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
+ goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
+ goodsRecyclerView.adapter = featuredGoodsAdapter
+ featuredGoodsAdapter.setOnGridItemClickListener(object :
+ FeaturedGoodsAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+
+ //TODO 模拟数据
+ val favoriteModels = ArrayList()
+ for (i in 0..5) {
+ val model = FavoriteModel()
+ model.deviceName = "智能厨房*****"
+ model.deviceDesc = "描述文字"
+
+ favoriteModels.add(model)
+ }
+ val favoriteAdapter = FavoriteAdapter(requireContext(), favoriteModels)
+ favoriteGridView.addItemDecoration(GridItemDecoration(requireContext()))
+ favoriteGridView.adapter = favoriteAdapter
+ favoriteAdapter.setOnGridItemClickListener(object :
+ FavoriteAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
deleted file mode 100644
index a013b9e..0000000
--- a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.casic.br.fragment.shop
-
-import com.bumptech.glide.Glide
-import com.casic.br.R
-import com.casic.br.adapter.FeaturedGoodsAdapter
-import com.casic.br.adapter.RecommendAdapter
-import com.casic.br.model.BannerImageModel
-import com.casic.br.model.FeaturedGoodsModel
-import com.casic.br.model.RecommendModel
-import com.casic.br.utils.GridItemDecoration
-import com.pengxh.kt.lite.base.KotlinBaseFragment
-import com.pengxh.kt.lite.extensions.show
-import com.youth.banner.Banner
-import com.youth.banner.adapter.BannerImageAdapter
-import com.youth.banner.holder.BannerImageHolder
-import com.youth.banner.indicator.RectangleIndicator
-import com.youth.banner.transformer.*
-import kotlinx.android.synthetic.main.fragment_recommend.*
-import java.util.*
-
-class RecommendFragment : KotlinBaseFragment() {
-
- override fun initLayoutView(): Int = R.layout.fragment_recommend
-
- override fun setupTopBarLayout() {
-
- }
-
- override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = shopBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = RectangleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@RecommendFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
-
- //TODO 模拟数据
- val goodsModels = ArrayList()
- for (i in 0..5) {
- val model = FeaturedGoodsModel()
- model.deviceName = "******热水器"
- model.deviceDesc = "描述文字"
-
- goodsModels.add(model)
- }
- val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
- goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
- goodsRecyclerView.adapter = featuredGoodsAdapter
- featuredGoodsAdapter.setOnGridItemClickListener(object :
- FeaturedGoodsAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
-
- //TODO 模拟数据
- val recommendModels = ArrayList()
- for (i in 0..5) {
- val model = RecommendModel()
- model.deviceName = "智能厨房*****"
- model.deviceDesc = "描述文字"
-
- recommendModels.add(model)
- }
- val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
- recommendGridView.addItemDecoration(GridItemDecoration(requireContext()))
- recommendGridView.adapter = recommendAdapter
- recommendAdapter.setOnGridItemClickListener(object :
- RecommendAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
- }
-
- override fun observeRequestState() {
-
- }
-
- override fun initEvent() {
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/model/FavoriteModel.java b/app/src/main/java/com/casic/br/model/FavoriteModel.java
new file mode 100644
index 0000000..ed9f2bb
--- /dev/null
+++ b/app/src/main/java/com/casic/br/model/FavoriteModel.java
@@ -0,0 +1,34 @@
+package com.casic.br.model;
+
+/**
+ * 猜你喜欢数据模型
+ */
+public class FavoriteModel {
+ private String deviceName;
+ private String deviceImage;
+ private String deviceDesc;
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getDeviceImage() {
+ return deviceImage;
+ }
+
+ public void setDeviceImage(String deviceImage) {
+ this.deviceImage = deviceImage;
+ }
+
+ public String getDeviceDesc() {
+ return deviceDesc;
+ }
+
+ public void setDeviceDesc(String deviceDesc) {
+ this.deviceDesc = deviceDesc;
+ }
+}
diff --git a/app/src/main/java/com/casic/br/model/RecommendModel.java b/app/src/main/java/com/casic/br/model/RecommendModel.java
index 3ef8b66..6e6502f 100644
--- a/app/src/main/java/com/casic/br/model/RecommendModel.java
+++ b/app/src/main/java/com/casic/br/model/RecommendModel.java
@@ -1,34 +1,13 @@
package com.casic.br.model;
-/**
- * 猜你喜欢数据模型
- */
public class RecommendModel {
- private String deviceName;
- private String deviceImage;
- private String deviceDesc;
+ private String imageLink;
- public String getDeviceName() {
- return deviceName;
+ public String getImageLink() {
+ return imageLink;
}
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getDeviceImage() {
- return deviceImage;
- }
-
- public void setDeviceImage(String deviceImage) {
- this.deviceImage = deviceImage;
- }
-
- public String getDeviceDesc() {
- return deviceDesc;
- }
-
- public void setDeviceDesc(String deviceDesc) {
- this.deviceDesc = deviceDesc;
+ public void setImageLink(String imageLink) {
+ this.imageLink = imageLink;
}
}
diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
index 66cb1a4..1db7a3d 100644
--- a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
@@ -1,7 +1,38 @@
package com.casic.br.view.device
+import com.casic.br.R
+import com.casic.br.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_water_heater.*
+
/**
* 热水器
* */
-class WaterHeaterActivity {
+class WaterHeaterActivity : KotlinBaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_water_heater
+
+ override fun setupTopBarLayout() {
+ initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+
+ leftBackView.setOnClickListener { finish() }
+ titleView.text = intent.getStringExtra(Constant.INTENT_PARAM)
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ rightOperateView.setOnClickListener {
+
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bottom_text_color.xml b/app/src/main/res/drawable/bottom_text_color.xml
index b284ea3..604984e 100644
--- a/app/src/main/res/drawable/bottom_text_color.xml
+++ b/app/src/main/res/drawable/bottom_text_color.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/device_selector.xml b/app/src/main/res/drawable/device_selector.xml
index 559ea94..b804df5 100644
--- a/app/src/main/res/drawable/device_selector.xml
+++ b/app/src/main/res/drawable/device_selector.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/home_selector.xml b/app/src/main/res/drawable/home_selector.xml
index 559ea94..7c8ec4f 100644
--- a/app/src/main/res/drawable/home_selector.xml
+++ b/app/src/main/res/drawable/home_selector.xml
@@ -1,5 +1,5 @@
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_device.xml b/app/src/main/res/drawable/ic_device.xml
index 831c4c4..e9dc9ef 100644
--- a/app/src/main/res/drawable/ic_device.xml
+++ b/app/src/main/res/drawable/ic_device.xml
@@ -1,39 +1,9 @@
-
-
-
-
-
-
-
-
-
-
+ android:fillColor="@color/hintTextColor"
+ android:pathData="M505.81,424.95c-17.33,0 -33.83,-2.48 -46.21,-7.43L202.16,323.46c-21.45,-7.43 -23.93,-18.98 -23.93,-25.58 0,-5.78 3.3,-17.33 23.93,-25.58l256.62,-94.89c12.38,-4.95 28.88,-7.43 46.21,-7.43 17.33,0 33.83,2.48 46.21,7.43L808.64,272.3c21.45,7.43 23.93,18.98 23.93,25.58 0,5.78 -3.3,17.33 -23.93,25.58L552.02,418.35c-12.38,4.13 -28.88,6.6 -46.21,6.6zM450.53,853.2c-5.78,0 -12.38,-0.83 -18.15,-3.3L207.94,764.08c-26.4,-9.9 -46.21,-40.43 -46.21,-70.96L161.73,406.79c0,-25.58 14.03,-42.08 35.48,-42.08 5.78,0 11.55,0.83 17.33,3.3L442.28,453.83c27.23,9.9 49.51,41.26 49.51,70.96v286.32c-0.83,24.75 -18.15,42.08 -41.26,42.08zM566.05,848.24h0.83c-21.45,0 -34.66,-12.38 -34.66,-37.13L532.22,524.79c0,-30.53 18.98,-61.06 45.38,-70.96l224.44,-85.81c5.78,-2.48 12.38,-3.3 18.98,-3.3 23.1,0 40.43,17.33 40.43,42.08L861.45,693.12c0,29.71 -23.1,61.06 -50.33,70.96l-227.74,83.34c-4.95,2.48 -11.55,0.83 -17.33,0.83z" />
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
index c52f538..d93769b 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -3,12 +3,16 @@
import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
+import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
+import com.casic.br.model.RecommendModel
import com.casic.br.view.AllDeviceActivity
+import com.casic.br.view.device.FireplaceActivity
+import com.casic.br.view.device.RangeHoodActivity
+import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*
@@ -24,16 +28,25 @@
}
override fun initData() {
- //TODO 模拟数据 只显示前三个设备
+ //TODO 模拟数据
val deviceModels = ArrayList()
- for (i in 0..2) {
- val model = AddedDeviceModel()
- model.deviceName = "万家乐热水器"
- model.deviceModel = "D40-DM1"
- model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
- deviceModels.add(model)
- }
+ val model1 = AddedDeviceModel()
+ model1.deviceName = "万家乐热水器"
+ model1.deviceModel = "D40-DM1"
+ model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model1)
+ val model2 = AddedDeviceModel()
+ model2.deviceName = "万家乐油烟机"
+ model2.deviceModel = "CXW-320-W7"
+ model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model2)
+ val model3 = AddedDeviceModel()
+ model3.deviceName = "万家乐壁挂炉"
+ model3.deviceModel = "26-13A3L"
+ model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model3)
+
val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), 13f)
addedDeviceAdapter.setupDevice(deviceModels)
deviceRecyclerView.adapter = addedDeviceAdapter
@@ -46,13 +59,41 @@
override fun onItemClick(position: Int) {
//TODO 需要根据设备类型显示不同的页面
val deviceModel = deviceModels[position]
- deviceModel.deviceName.show(requireContext())
+ when {
+ deviceModel.deviceName.contains("热水器") -> {
+ requireContext().navigatePageTo(deviceModel.deviceName)
+ }
+ deviceModel.deviceName.contains("油烟机") -> {
+ requireContext().navigatePageTo()
+ }
+ deviceModel.deviceName.contains("壁挂炉") -> {
+ requireContext().navigatePageTo()
+ }
+ }
}
override fun onButtonClick(position: Int) {
}
})
+
+ //热门推荐
+ //TODO 模拟数据 只显示前三个设备
+ val recommendModels = ArrayList()
+ for (i in 0..2) {
+ val model = RecommendModel()
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ recommendModels.add(model)
+ }
+ val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
+ recommendRecyclerView.adapter = recommendAdapter
+ recommendAdapter.setOnItemClickListener(object : RecommendAdapter.OnItemClickListener {
+
+ override fun onItemClick(position: Int) {
+
+ }
+ })
}
override fun observeRequestState() {
diff --git a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
index cc69400..e3f40fd 100644
--- a/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/ShopPageFragment.kt
@@ -5,7 +5,7 @@
import com.casic.br.adapter.SubViewPagerAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.fragment.shop.ComponentFragment
-import com.casic.br.fragment.shop.RecommendFragment
+import com.casic.br.fragment.shop.FavoriteFragment
import com.casic.br.fragment.shop.SmartHomeFragment
import com.casic.br.fragment.shop.SmartKitchenFragment
import com.casic.br.utils.LocaleConstant
@@ -18,7 +18,7 @@
private var fragmentPages: ArrayList = ArrayList()
init {
- fragmentPages.add(RecommendFragment())
+ fragmentPages.add(FavoriteFragment())
fragmentPages.add(SmartKitchenFragment())
fragmentPages.add(SmartHomeFragment())
fragmentPages.add(ComponentFragment())
diff --git a/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
new file mode 100644
index 0000000..6caa727
--- /dev/null
+++ b/app/src/main/java/com/casic/br/fragment/shop/FavoriteFragment.kt
@@ -0,0 +1,109 @@
+package com.casic.br.fragment.shop
+
+import com.bumptech.glide.Glide
+import com.casic.br.R
+import com.casic.br.adapter.FavoriteAdapter
+import com.casic.br.adapter.FeaturedGoodsAdapter
+import com.casic.br.model.BannerImageModel
+import com.casic.br.model.FavoriteModel
+import com.casic.br.model.FeaturedGoodsModel
+import com.casic.br.utils.GridItemDecoration
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.youth.banner.Banner
+import com.youth.banner.adapter.BannerImageAdapter
+import com.youth.banner.holder.BannerImageHolder
+import com.youth.banner.indicator.RectangleIndicator
+import com.youth.banner.transformer.*
+import kotlinx.android.synthetic.main.fragment_favorite.*
+import java.util.*
+
+class FavoriteFragment : KotlinBaseFragment() {
+
+ override fun initLayoutView(): Int = R.layout.fragment_favorite
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ //TODO 模拟数据
+ val imageModels = ArrayList()
+ for (i in 0..4) {
+ val model = BannerImageModel()
+ model.imageTitle = "测试轮播图"
+ model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
+
+ imageModels.add(model)
+ }
+
+ val banner = shopBannerView
+ as Banner>
+ banner.apply {
+ setAdapter(object : BannerImageAdapter(imageModels) {
+ override fun onBindView(
+ holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
+ ) {
+ Glide.with(holder.itemView)
+ .load(data.imageLink)
+ .placeholder(R.mipmap.load_image_error)
+ .into(holder.imageView)
+ }
+ })
+ indicator = RectangleIndicator(requireContext())
+ addPageTransformer(AlphaPageTransformer())
+ addBannerLifecycleObserver(this@FavoriteFragment)
+
+ //Banner点击事件
+ setOnBannerListener { imageModel, _ ->
+ "${imageModel.imageTitle}被点击了".show(requireContext())
+ }
+ }
+
+ //TODO 模拟数据
+ val goodsModels = ArrayList()
+ for (i in 0..5) {
+ val model = FeaturedGoodsModel()
+ model.deviceName = "******热水器"
+ model.deviceDesc = "描述文字"
+
+ goodsModels.add(model)
+ }
+ val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
+ goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
+ goodsRecyclerView.adapter = featuredGoodsAdapter
+ featuredGoodsAdapter.setOnGridItemClickListener(object :
+ FeaturedGoodsAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+
+ //TODO 模拟数据
+ val favoriteModels = ArrayList()
+ for (i in 0..5) {
+ val model = FavoriteModel()
+ model.deviceName = "智能厨房*****"
+ model.deviceDesc = "描述文字"
+
+ favoriteModels.add(model)
+ }
+ val favoriteAdapter = FavoriteAdapter(requireContext(), favoriteModels)
+ favoriteGridView.addItemDecoration(GridItemDecoration(requireContext()))
+ favoriteGridView.adapter = favoriteAdapter
+ favoriteAdapter.setOnGridItemClickListener(object :
+ FavoriteAdapter.OnGridItemClickListener {
+ override fun onItemClick(position: Int) {
+
+ }
+ })
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt b/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
deleted file mode 100644
index a013b9e..0000000
--- a/app/src/main/java/com/casic/br/fragment/shop/RecommendFragment.kt
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.casic.br.fragment.shop
-
-import com.bumptech.glide.Glide
-import com.casic.br.R
-import com.casic.br.adapter.FeaturedGoodsAdapter
-import com.casic.br.adapter.RecommendAdapter
-import com.casic.br.model.BannerImageModel
-import com.casic.br.model.FeaturedGoodsModel
-import com.casic.br.model.RecommendModel
-import com.casic.br.utils.GridItemDecoration
-import com.pengxh.kt.lite.base.KotlinBaseFragment
-import com.pengxh.kt.lite.extensions.show
-import com.youth.banner.Banner
-import com.youth.banner.adapter.BannerImageAdapter
-import com.youth.banner.holder.BannerImageHolder
-import com.youth.banner.indicator.RectangleIndicator
-import com.youth.banner.transformer.*
-import kotlinx.android.synthetic.main.fragment_recommend.*
-import java.util.*
-
-class RecommendFragment : KotlinBaseFragment() {
-
- override fun initLayoutView(): Int = R.layout.fragment_recommend
-
- override fun setupTopBarLayout() {
-
- }
-
- override fun initData() {
- //TODO 模拟数据
- val imageModels = ArrayList()
- for (i in 0..4) {
- val model = BannerImageModel()
- model.imageTitle = "测试轮播图"
- model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"
-
- imageModels.add(model)
- }
-
- val banner = shopBannerView
- as Banner>
- banner.apply {
- setAdapter(object : BannerImageAdapter(imageModels) {
- override fun onBindView(
- holder: BannerImageHolder, data: BannerImageModel, position: Int, size: Int
- ) {
- Glide.with(holder.itemView)
- .load(data.imageLink)
- .placeholder(R.mipmap.load_image_error)
- .into(holder.imageView)
- }
- })
- indicator = RectangleIndicator(requireContext())
- addPageTransformer(AlphaPageTransformer())
- addBannerLifecycleObserver(this@RecommendFragment)
-
- //Banner点击事件
- setOnBannerListener { imageModel, _ ->
- "${imageModel.imageTitle}被点击了".show(requireContext())
- }
- }
-
- //TODO 模拟数据
- val goodsModels = ArrayList()
- for (i in 0..5) {
- val model = FeaturedGoodsModel()
- model.deviceName = "******热水器"
- model.deviceDesc = "描述文字"
-
- goodsModels.add(model)
- }
- val featuredGoodsAdapter = FeaturedGoodsAdapter(requireContext(), goodsModels)
- goodsRecyclerView.addItemDecoration(GridItemDecoration(requireContext()))
- goodsRecyclerView.adapter = featuredGoodsAdapter
- featuredGoodsAdapter.setOnGridItemClickListener(object :
- FeaturedGoodsAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
-
- //TODO 模拟数据
- val recommendModels = ArrayList()
- for (i in 0..5) {
- val model = RecommendModel()
- model.deviceName = "智能厨房*****"
- model.deviceDesc = "描述文字"
-
- recommendModels.add(model)
- }
- val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
- recommendGridView.addItemDecoration(GridItemDecoration(requireContext()))
- recommendGridView.adapter = recommendAdapter
- recommendAdapter.setOnGridItemClickListener(object :
- RecommendAdapter.OnGridItemClickListener {
- override fun onItemClick(position: Int) {
-
- }
- })
- }
-
- override fun observeRequestState() {
-
- }
-
- override fun initEvent() {
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/model/FavoriteModel.java b/app/src/main/java/com/casic/br/model/FavoriteModel.java
new file mode 100644
index 0000000..ed9f2bb
--- /dev/null
+++ b/app/src/main/java/com/casic/br/model/FavoriteModel.java
@@ -0,0 +1,34 @@
+package com.casic.br.model;
+
+/**
+ * 猜你喜欢数据模型
+ */
+public class FavoriteModel {
+ private String deviceName;
+ private String deviceImage;
+ private String deviceDesc;
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getDeviceImage() {
+ return deviceImage;
+ }
+
+ public void setDeviceImage(String deviceImage) {
+ this.deviceImage = deviceImage;
+ }
+
+ public String getDeviceDesc() {
+ return deviceDesc;
+ }
+
+ public void setDeviceDesc(String deviceDesc) {
+ this.deviceDesc = deviceDesc;
+ }
+}
diff --git a/app/src/main/java/com/casic/br/model/RecommendModel.java b/app/src/main/java/com/casic/br/model/RecommendModel.java
index 3ef8b66..6e6502f 100644
--- a/app/src/main/java/com/casic/br/model/RecommendModel.java
+++ b/app/src/main/java/com/casic/br/model/RecommendModel.java
@@ -1,34 +1,13 @@
package com.casic.br.model;
-/**
- * 猜你喜欢数据模型
- */
public class RecommendModel {
- private String deviceName;
- private String deviceImage;
- private String deviceDesc;
+ private String imageLink;
- public String getDeviceName() {
- return deviceName;
+ public String getImageLink() {
+ return imageLink;
}
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getDeviceImage() {
- return deviceImage;
- }
-
- public void setDeviceImage(String deviceImage) {
- this.deviceImage = deviceImage;
- }
-
- public String getDeviceDesc() {
- return deviceDesc;
- }
-
- public void setDeviceDesc(String deviceDesc) {
- this.deviceDesc = deviceDesc;
+ public void setImageLink(String imageLink) {
+ this.imageLink = imageLink;
}
}
diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
index 66cb1a4..1db7a3d 100644
--- a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
+++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt
@@ -1,7 +1,38 @@
package com.casic.br.view.device
+import com.casic.br.R
+import com.casic.br.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_water_heater.*
+
/**
* 热水器
* */
-class WaterHeaterActivity {
+class WaterHeaterActivity : KotlinBaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_water_heater
+
+ override fun setupTopBarLayout() {
+ initLayoutImmersionBar(rootView)
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+
+ leftBackView.setOnClickListener { finish() }
+ titleView.text = intent.getStringExtra(Constant.INTENT_PARAM)
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ rightOperateView.setOnClickListener {
+
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bottom_text_color.xml b/app/src/main/res/drawable/bottom_text_color.xml
index b284ea3..604984e 100644
--- a/app/src/main/res/drawable/bottom_text_color.xml
+++ b/app/src/main/res/drawable/bottom_text_color.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/device_selector.xml b/app/src/main/res/drawable/device_selector.xml
index 559ea94..b804df5 100644
--- a/app/src/main/res/drawable/device_selector.xml
+++ b/app/src/main/res/drawable/device_selector.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/home_selector.xml b/app/src/main/res/drawable/home_selector.xml
index 559ea94..7c8ec4f 100644
--- a/app/src/main/res/drawable/home_selector.xml
+++ b/app/src/main/res/drawable/home_selector.xml
@@ -1,5 +1,5 @@
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_device.xml b/app/src/main/res/drawable/ic_device.xml
index 831c4c4..e9dc9ef 100644
--- a/app/src/main/res/drawable/ic_device.xml
+++ b/app/src/main/res/drawable/ic_device.xml
@@ -1,39 +1,9 @@
-
-
-
-
-
-
-
-
-
-
+ android:fillColor="@color/hintTextColor"
+ android:pathData="M505.81,424.95c-17.33,0 -33.83,-2.48 -46.21,-7.43L202.16,323.46c-21.45,-7.43 -23.93,-18.98 -23.93,-25.58 0,-5.78 3.3,-17.33 23.93,-25.58l256.62,-94.89c12.38,-4.95 28.88,-7.43 46.21,-7.43 17.33,0 33.83,2.48 46.21,7.43L808.64,272.3c21.45,7.43 23.93,18.98 23.93,25.58 0,5.78 -3.3,17.33 -23.93,25.58L552.02,418.35c-12.38,4.13 -28.88,6.6 -46.21,6.6zM450.53,853.2c-5.78,0 -12.38,-0.83 -18.15,-3.3L207.94,764.08c-26.4,-9.9 -46.21,-40.43 -46.21,-70.96L161.73,406.79c0,-25.58 14.03,-42.08 35.48,-42.08 5.78,0 11.55,0.83 17.33,3.3L442.28,453.83c27.23,9.9 49.51,41.26 49.51,70.96v286.32c-0.83,24.75 -18.15,42.08 -41.26,42.08zM566.05,848.24h0.83c-21.45,0 -34.66,-12.38 -34.66,-37.13L532.22,524.79c0,-30.53 18.98,-61.06 45.38,-70.96l224.44,-85.81c5.78,-2.48 12.38,-3.3 18.98,-3.3 23.1,0 40.43,17.33 40.43,42.08L861.45,693.12c0,29.71 -23.1,61.06 -50.33,70.96l-227.74,83.34c-4.95,2.48 -11.55,0.83 -17.33,0.83z" />
diff --git a/app/src/main/res/drawable/ic_device_selected.xml b/app/src/main/res/drawable/ic_device_selected.xml
new file mode 100644
index 0000000..c9c940b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_device_selected.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index defbd7a..b67d659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_favorite_rv_g, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ holder.deviceNameView.text = dataRows[position].deviceName
+ holder.descriptionView.text = dataRows[position].deviceDesc
+ holder.itemView.setOnClickListener {
+ clickListener?.onItemClick(position)
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ private var clickListener: OnGridItemClickListener? = null
+
+ interface OnGridItemClickListener {
+ fun onItemClick(position: Int)
+ }
+
+ fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ this.clickListener = clickListener
+ }
+
+ class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
+ val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
index 84e3596..2744964 100644
--- a/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
+++ b/app/src/main/java/com/casic/br/adapter/RecommendAdapter.kt
@@ -4,28 +4,26 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
import com.casic.br.R
-import com.casic.br.model.FeaturedGoodsModel
import com.casic.br.model.RecommendModel
-/**
- * 猜你喜欢,九宫格Adapter
- * */
class RecommendAdapter(
- context: Context, private val dataRows: MutableList
-) : RecyclerView.Adapter() {
+ private val context: Context,
+ private val dataRows: MutableList
+) :
+ RecyclerView.Adapter() {
private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
- layoutInflater.inflate(R.layout.item_recommend_rv_g, parent, false)
+ layoutInflater.inflate(R.layout.item_recommend_rv_l, parent, false)
)
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
- holder.deviceNameView.text = dataRows[position].deviceName
- holder.descriptionView.text = dataRows[position].deviceDesc
+ Glide.with(context).load(dataRows[position].imageLink).into(holder.recommendImageView)
holder.itemView.setOnClickListener {
clickListener?.onItemClick(position)
}
@@ -33,18 +31,17 @@
override fun getItemCount(): Int = dataRows.size
- private var clickListener: OnGridItemClickListener? = null
+ private var clickListener: OnItemClickListener? = null
- interface OnGridItemClickListener {
+ interface OnItemClickListener {
fun onItemClick(position: Int)
}
- fun setOnGridItemClickListener(clickListener: OnGridItemClickListener?) {
+ fun setOnItemClickListener(clickListener: OnItemClickListener?) {
this.clickListener = clickListener
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView)
- val descriptionView: TextView = itemView.findViewById(R.id.descriptionView)
+ val recommendImageView: ImageView = itemView.findViewById(R.id.recommendImageView)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
index c52f538..d93769b 100644
--- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt
@@ -3,12 +3,16 @@
import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
+import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
+import com.casic.br.model.RecommendModel
import com.casic.br.view.AllDeviceActivity
+import com.casic.br.view.device.FireplaceActivity
+import com.casic.br.view.device.RangeHoodActivity
+import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.extensions.show
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*
@@ -24,16 +28,25 @@
}
override fun initData() {
- //TODO 模拟数据 只显示前三个设备
+ //TODO 模拟数据
val deviceModels = ArrayList()
- for (i in 0..2) {
- val model = AddedDeviceModel()
- model.deviceName = "万家乐热水器"
- model.deviceModel = "D40-DM1"
- model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
- deviceModels.add(model)
- }
+ val model1 = AddedDeviceModel()
+ model1.deviceName = "万家乐热水器"
+ model1.deviceModel = "D40-DM1"
+ model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model1)
+ val model2 = AddedDeviceModel()
+ model2.deviceName = "万家乐油烟机"
+ model2.deviceModel = "CXW-320-W7"
+ model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model2)
+ val model3 = AddedDeviceModel()
+ model3.deviceName = "万家乐壁挂炉"
+ model3.deviceModel = "26-13A3L"
+ model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
+ deviceModels.add(model3)
+
val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), 13f)
addedDeviceAdapter.setupDevice(deviceModels)
deviceRecyclerView.adapter = addedDeviceAdapter
@@ -46,13 +59,41 @@
override fun onItemClick(position: Int) {
//TODO 需要根据设备类型显示不同的页面
val deviceModel = deviceModels[position]
- deviceModel.deviceName.show(requireContext())
+ when {
+ deviceModel.deviceName.contains("热水器") -> {
+ requireContext().navigatePageTo(deviceModel.deviceName)
+ }
+ deviceModel.deviceName.contains("油烟机") -> {
+ requireContext().navigatePageTo