gpt4 book ai didi

android - Recycler View (水平)有两个项目占父宽度的 50%

转载 作者:行者123 更新时间:2023-12-05 06:17:43 24 4
gpt4 key购买 nike

我想确保在回收站 View (水平 方向和 LinearLayoutManager 设置)中,如果我有 2 个项目要显示,它们都获得父级的 50%布局。所以两者都适合屏幕。
我尝试了 2 种方法,但都无法正常工作。
方法一:

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomAdapter.ViewHolder {
val inflater = LayoutInflater.from(parent.context)
val itemView = inflater.inflate(R.layout.horizontal_list_item_view, parent, false)
itemView.post(
object : Runnable {
override fun run() {
itemView.layoutParams.width = (parent.width * 0.5).toInt()
}

}

)
return ViewHolder(itemView)
}

这不起作用,除非我先滚动,然后只有第一个项目的宽度被调整。

方法二:

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomAdapter.ViewHolder {
val inflater = LayoutInflater.from(parent.context)
val itemView = inflater.inflate(R.layout.horizontal_list_item_view, parent, false)
itemView.layoutParams.width = getScreenWidthFromUtils(context).x_width - MAGIC_NUMBER_WHICH_TAKES_PADDING_INTO_ACCOUNT)* 0.5).toInt()
return ViewHolder(itemView)
}

方法 2 种方法,但显然它不是解决方案,因为我怀疑实现它必须如此复杂。

执行此操作的正确方法是什么?

最佳答案

GridLayoutManager 将根据您指定的列数为项目提供最佳大小和空间。在您的情况下,您希望每行有 2 个项目,因此您的代码应如下所示:

val gridLayoutManager = GridLayoutManager(context, 2, GridLayoutManager.HORIZONTAL, false)

关于android - Recycler View (水平)有两个项目占父宽度的 50%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61483482/

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