【问题标题】:recyclerview not visible at run timerecyclerview 在运行时不可见
【发布时间】:2021-10-28 04:02:47
【问题描述】:

我使用 kotlin 语言使用数据绑定实现了一个简单的 recyclerview。 在xml中,recyclerview似乎是默认的, 但是当我运行它时,它不会显示为默认值。 执行时片段中包含的其他按钮和视图正常显示,但只有recyclerview不可见。哪一部分错了?

class WorkFragment : Fragment() {

    private var _binding: FragmentWorkBinding? = null

    private val binding get() = _binding!!




    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        _binding = FragmentWorkBinding.inflate(inflater, container, false)
        val view = binding.root


        return view
    }


    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)


        val data = mutableListOf<WorkList>()

        val adapter = WorkAdapter()

        adapter.data = data

        binding.recycler1.adapter = adapter

        binding.recycler1.layoutManager = LinearLayoutManager(requireContext())


       

    }



    }
class WorkAdapter : RecyclerView.Adapter<WorkAdapter.ViewHolder>() {

    var data = mutableListOf<WorkList>()

    class ViewHolder(val binding: RecyclerviewWorkItemBinding) : RecyclerView.ViewHolder(binding.root) {
        fun bind(workList: WorkList) {
            binding.tvStarttime.text = workList.Starttime
            binding.tvAdmin.text = workList.Admin
            binding.tvPart.text = workList.Part
            binding.tvStoptime.text = workList.Stoptime
            binding.tvWorkers.text = workList.Workers.toString()
        }
    }


    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): WorkAdapter.ViewHolder {

        val binding = RecyclerviewWorkItemBinding.inflate(LayoutInflater.from(parent.context), parent, false)
        return ViewHolder(binding)
    }

    override fun onBindViewHolder(holder: WorkAdapter.ViewHolder, position: Int) {
        holder.bind(data[position])
    }

    override fun getItemCount(): Int {

        return data.size
    }

//    fun replaceList(newList: MutableList<WorkList>) {
//        data = newList.toMutableList()
//        notifyDataSetChanged()
//    }


}

我的代码有问题吗? 作为参考,我只使用了一个片段,而不是一个活动。

【问题讨论】:

  • 因为您将一个空列表传递给适配器。所以你的 reyclerview 没有出现。
  • 我不明白空列表是什么意思。我需要修改 main 吗?
  • 我在 wow 片段中输入了每个数据值,看起来很正常。这似乎是我的基本错误。感谢您的评论。

标签: android kotlin android-fragments android-recyclerview data-binding


【解决方案1】:

RecyclerView 通常表现得像隐藏的,但实际上并非如此。原因是您传递了一个空列表,因此回收器不会被扩展或显示,因为列表中没有项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多