RecyclerView android:layout_width="match_parent"无效

使用RecyclerView 时,在xml文件中设置宽度match_parent无效,解决办法如下:

在Adapter中要如下填充view,

        @Override
	public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
		ViewHolder viewHolder = null;
		LayoutInflater mInflater = LayoutInflater.from(mContext);
		switch (viewType) {
		case FragmentBookShelf.GRID:
                    View view = mInflater.from(mContext).inflate(R.layout.item_grid_bookshelf, parent, false));
                    viewHolder = new GridViewHolder(view);
		    break;
		case FragmentBookShelf.LIST:
                    View view = mInflater.from(mContext).inflate(R.layout.item_list_bookshelf, parent, false));
		    viewHolder = new ListViewHolder(view);
                    break;
		}

		return viewHolder;
	}

Android开发中,如果你想让一个视图组件的宽度占据父容器宽度的50%,你应该使用`layout_weight`属性而不是`layout_width`。`layout_width`属性通常被设置为`wrap_content`或`match_parent`,前者表示视图的宽度仅足以包裹其内容,后者则表示视图的宽度将会匹配父容器的宽度。 要让一个视图占据父容器宽度的50%,你可以使用`LinearLayout`作为父布局,并且为想要占据50%宽度的视图设置`layout_width`为`0dp`(这是一个技巧,用于告诉系统这个视图应该忽略其内部内容的大小,而是依赖于权重),然后设置`layout_weight`为`1`。其余的视图也遵循相同的设置,如果你想让它们也占据相同比例的空间。 例如,如果你有三个子视图都想要占据等宽的父布局空间,你可以这样设置: ```xml <LinearLayout android:layout_width=&quot;match_parent&quot; android:layout_height=&quot;wrap_content&quot; android:orientation=&quot;horizontal&quot;> <View android:layout_width=&quot;0dp&quot; android:layout_height=&quot;wrap_content&quot; android:layout_weight=&quot;1&quot; /> <View android:layout_width=&quot;0dp&quot; android:layout_height=&quot;wrap_content&quot; android:layout_weight=&quot;1&quot; /> <View android:layout_width=&quot;0dp&quot; android:layout_height=&quot;wrap_content&quot; android:layout_weight=&quot;1&quot; /> </LinearLayout> ``` 在这个例子中,每个`View`都会占据父容器宽度的1/3,因为它们都有相同的权重值`1`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值