gpt4 book ai didi

android - 返回绑定(bind)数据或回收器 View 问题

转载 作者:行者123 更新时间:2023-12-02 13:30:51 26 4
gpt4 key购买 nike

在我的 fragment 中,我有一些图像和 View ,它们通过绑定(bind)数据来获取它们的值,并且在它们下方是一个 RecyclerView。图像和 TextView 显示成功,但我的 Recyclerview 不会显示。如果我只返回我的 View ,则 RecyclerView 会显示,但绑定(bind)的数据不会。我想查看他们两个。

[ enter image description here ]

class DetailFragment : Fragment(), LessonRecyclerAdapter.LessonItemListener {

private lateinit var viewModel: SharedViewModel
private lateinit var recyclerView: RecyclerView

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.fragment_detail, container, false)
recyclerView = view.findViewById(R.id.lessonRecyclerView)
navController = Navigation.findNavController(requireActivity(), R.id.nav_host )

viewModel = ViewModelProvider(requireActivity()).get(SharedViewModel::class.java)
viewModel.lessonData.observe(viewLifecycleOwner, Observer {
val adapter =
LessonRecyclerAdapter(
it,
this
)
recyclerView.adapter = adapter
})

// return binding data
val binding = FragmentDetailBinding.inflate(inflater, container, false)
binding.lifecycleOwner = this
binding.viewModel = viewModel
return binding.root
//return view
}

最佳答案

如您所见,有两种充气,一种用于绑定(bind),另一种用于查看(用于 recyclerview 设置)。简单的解决方法是直接使用recyclerview从绑定(bind)变量将列表设置为:

private lateinit var binding: FragmentDetailBinding

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
navController = Navigation.findNavController(requireActivity(), R.id.nav_host )

viewModel = ViewModelProvider(requireActivity()).get(SharedViewModel::class.java)

binding = FragmentDetailBinding.inflate(inflater, container, false)
binding.lifecycleOwner = this
binding.viewModel = viewModel

viewModel.lessonData.observe(viewLifecycleOwner, Observer {
val adapter =
LessonRecyclerAdapter(
it,
this
)
// directly access the view using ids
binding.lessonRecyclerView.adapter = adapter
})

return binding.root
}

另一种选择是 use binding adapters使用实时数据设置适配器并将数据传递给适配器。

关于android - 返回绑定(bind)数据或回收器 View 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61486858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com