android - 如何设置单个recyclerview项[imageview]占据屏幕的一半?

标签 android

我从 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/

相关文章:

android Studio 日志不起作用

android - Google 登录 iOS 帐户选择器

java - Restcomm Android SDK 和 libjingle

Android 标签文本颜色选择器忽略 state_pressed

android - 创建多边形地理围栏

android - 在设备 : error 103 上手动安装 apk

android - 读取包含 åäö 的 Assets 中的文本文件

android - 如何禁用 EditText 中的“仅剪切”选项?

android - 为什么在我的应用程序安装过程中出现错误的快捷方式名称?

Android Studio模拟器: process exit with error code 1