package com.example.firstapp.ui.home
|
|
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.adapter.MyAdapter
|
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 adapter: MyAdapter
|
|
|
override fun onCreateView(
|
inflater: LayoutInflater,
|
container: ViewGroup?,
|
savedInstanceState: Bundle?
|
): View {
|
homeViewModel =
|
ViewModelProvider(this).get(HomeViewModel::class.java)
|
|
_binding = FragmentHomeBinding.inflate(inflater, container, false)
|
val root: View = binding.root
|
|
// val textView: TextView = binding.textHome
|
// homeViewModel.text.observe(viewLifecycleOwner) {
|
// textView.text = it
|
// }
|
|
|
// 初始化适配器
|
adapter = MyAdapter()
|
|
// 获取数据
|
// val codeList = Core.code.getAllDesc()
|
|
// 使用 binding 来访问 RecyclerView
|
val recyclerView: RecyclerView = binding.recyclerView
|
recyclerView.layoutManager = LinearLayoutManager(requireContext()) // 使用 requireContext() 获取上下文
|
recyclerView.adapter = adapter
|
|
// 观察 LiveData,当数据发生变化时,更新 RecyclerView 的内容
|
homeViewModel.codeList.observe(viewLifecycleOwner) { codeList ->
|
adapter.submitList(codeList) // 更新 RecyclerView 的数据
|
// 滚动到顶部
|
recyclerView.scrollToPosition(0)
|
}
|
|
return root
|
}
|
|
override fun onDestroyView() {
|
super.onDestroyView()
|
_binding = null
|
}
|
}
|