我从 single_item.xml 中夸大了 recyclerview 项目,它只有一个 ImageView 。如何让它占据屏幕的一半? 或者以另一种方式,我如何在主 xml 文件中每个屏幕显示两个项目,该文件会扩展 single_item.xml 文件? 我想在不设置固定高度的情况下执行此操作。 我尝试使用布局权重划分,但这会禁用托管 View 显示两项而不是一项。
最佳答案
最好的方法是向 onCreateViewHolder()
添加代码,以更改项目 View 的高度(如果您使用的是垂直布局管理器)或宽度(如果您使用的是垂直布局管理器)或宽度(如果您使用的是垂直布局管理器)。水平布局管理器)。
下面是如何使每个项目的大小为屏幕大小的一半的示例:
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View itemView = inflater.inflate(R.layout.itemview, parent, false);
// here we override the inflated view's height to be half the recyclerview size
ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) itemView.getLayoutParams();
layoutParams.height = (parent.getHeight() / 2) - layoutParams.topMargin - layoutParams.bottomMargin;
itemView.setLayoutParams(layoutParams);
return new MyViewHolder(itemView);
}
如果您的项目 View 布局没有任何边距,您可以省略边距的减去,而只使用
layoutParams.height = parent.getHeight() / 2;
如果您尝试使用水平布局管理器,则需要更改宽度而不是高度:
layoutParams.width = (parent.getWidth() / 2) - layoutParams.leftMargin - layoutParams.rightMargin;
关于android - 如何设置单个recyclerview项[imageview]占据屏幕的一半?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53188303/