Android - “wrap_content”不包含内容

时间:2015-08-11 10:26:34

标签: android xml layout

我正在尝试让我的Recycler视图在wrap_content上只有几个项目时不占用所有屏幕空间,但这似乎不起作用。有什么问题?

enter image description here 代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:layout_height="match_parent"
        android:layout_width="fill_parent"
        android:gravity="center_horizontal"
        android:weightSum="1">
        <android.support.v7.widget.RecyclerView
            android:id="@+id/smoke_recycler_view"
            android:scrollbars="vertical"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.8"
            android:paddingTop="4dp"
            android:paddingRight="4dp"
            android:paddingLeft="4dp"
            android:layout_marginTop="25dp"
            android:layout_marginBottom="25dp"
            android:background="#FFF"
            android:elevation="2dp" />
    </LinearLayout>
</RelativeLayout>

4 个答案:

答案 0 :(得分:3)

在RecyclerView中使用 android:layout_weight =“1”而不是0.8和线性布局 android:layout_width =“wrap_content”不是fill_parent

答案 1 :(得分:3)

最重要的是RecyclerView默认情况下不支持wrap_content。你必须挣扎一下并为它提供一个LayoutManager,它可以强迫你的RecyclerView包装它的内容。

查看thisthis

答案 2 :(得分:1)

您提供了LinearLayout宽度以填充parent和weightSum为1.然后将layout_weight设置为0.8。因此,您的总布局宽度大小为1,并且您将recycleview的layout_weight设置为0.8,因此它占用宽度的80%。

答案 3 :(得分:1)

试试这个......

将身高从wrap_content更改为match_parent

<android.support.v7.widget.RecyclerView
        android:id="@+id/smoke_recycler_view"
        android:scrollbars="vertical"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:paddingTop="4dp"
        android:paddingRight="4dp"
        android:paddingLeft="4dp"
        android:background="#FFF"
        android:elevation="2dp" />