package com.example.firstapp.ui.home
|
|
import android.content.Intent
|
import android.os.Bundle
|
import android.view.LayoutInflater
|
import android.view.View
|
import android.view.ViewGroup
|
import android.widget.TextView
|
import androidx.fragment.app.Fragment
|
import androidx.lifecycle.ViewModelProvider
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.RecyclerView
|
import com.example.firstapp.R
|
import com.example.firstapp.activity.PickupActivity
|
import com.example.firstapp.adapter.ExpressAdapter
|
import com.example.firstapp.core.Core
|
import com.example.firstapp.databinding.FragmentHomeBinding
|
|
class HomeFragment : Fragment() {
|
|
private var _binding: FragmentHomeBinding? = null
|
|
// This property is only valid between onCreateView and
|
// onDestroyView.
|
private val binding get() = _binding!!
|
|
private lateinit var homeViewModel: HomeViewModel
|
private lateinit var expressAdapter: ExpressAdapter
|
// private lateinit var financeAdapter: FinanceAdapter
|
// private lateinit var memorialAdapter: MemorialAdapter
|
|
//onCreateView这个方法创建后被调用,通常是初始化视图组件和观察者
|
override fun onCreateView(
|
inflater: LayoutInflater,
|
container: ViewGroup?,
|
savedInstanceState: Bundle?
|
): View {
|
_binding = FragmentHomeBinding.inflate(inflater, container, false)
|
return binding.root
|
}
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
super.onViewCreated(view, savedInstanceState)
|
|
//通过 ViewModelProvider 获取 HomeViewModel 的实例,以便在视图中使用。
|
homeViewModel = ViewModelProvider(this).get(HomeViewModel::class.java)
|
|
//调用这个方法来设置 RecyclerView用于设置 RecyclerView 的布局和适配器。
|
setupRecyclerViews()
|
//调用这个方法来观察 ViewModel 中的数据变化
|
observeViewModelData()
|
}
|
|
private fun setupRecyclerViews() {
|
binding.expressRecycler.apply {
|
layoutManager = LinearLayoutManager(context)
|
expressAdapter = ExpressAdapter()
|
adapter = expressAdapter
|
|
// 设置点击监听
|
expressAdapter.setOnPackageClickListener { group, pack ->
|
// 跳转到取件页面
|
val intent = Intent(requireContext(), PickupActivity::class.java).apply {
|
putExtra("station_name", group.stationName)
|
putExtra("company", pack.company)
|
}
|
startActivity(intent)
|
}
|
}
|
|
// // 财务列表
|
// binding.financeRecycler.apply {
|
// layoutManager = LinearLayoutManager(context)
|
// financeAdapter = FinanceAdapter()
|
// adapter = financeAdapter
|
// }
|
//
|
// // 纪念日列表
|
// binding.memorialRecycler.apply {
|
// layoutManager = LinearLayoutManager(context)
|
// memorialAdapter = MemorialAdapter()
|
// adapter = memorialAdapter
|
// }
|
}
|
|
//这个方法用于观察 homeViewModel 中的 expressItems 数据。
|
private fun observeViewModelData() {
|
//当 expressItems 数据发生变化时,更新 RecyclerView 的数据。
|
homeViewModel.expressItems.observe(viewLifecycleOwner) { items ->
|
//将新的数据列表提交给适配器,以更新 RecyclerView 的显示内容。
|
expressAdapter.submitList(items)
|
}
|
|
// homeViewModel.financeItems.observe(viewLifecycleOwner) { items ->
|
// financeAdapter.submitList(items)
|
// }
|
//
|
// homeViewModel.memorialItems.observe(viewLifecycleOwner) { items ->
|
// memorialAdapter.submitList(items)
|
// }
|
}
|
|
override fun onDestroyView() {
|
super.onDestroyView()
|
_binding = null
|
}
|
}
|