无法在LinearLayout中使用WRAP_CONTENT RecyclerView

时间:2016-11-03 09:14:09

标签: android android-layout android-recyclerview android-linearlayout

基本上我有两个类似的布局,有不同的创建方法。问题是RecyclerView WRAP_CONTENT在这两种布局上表现不同。在第一个布局中,它可以正常工作,而在其他布局中,WRAP_CONTENT无法正常工作。

以下代码无效。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    ... other layout codes
    <android.support.v7.widget.RecyclerView
        android:id="@+id/xxx"
        style="@style/MarginLeftDetail"
        android:layout_width="match_parent"
        android:layout_height="0dp"
    />
     ... other layout codes
</LinearLayout>

虽然这是有效的。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
    ... other layout codes
    <android.support.v7.widget.RecyclerView
        android:id="@+id/xxx"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_below="@+id/yyy"
        style="@style/MarginLeftDetail"
        android:layout_marginTop="7.5dp"/>
    ... other layout codes
</RelativeLayout>

LinearLayout解释WRAP_CONTENT的方式与RelativeLayout不同吗?

更新:如果我用RecyclerView包装第一个RelativeLayout,它可以正常工作。所以我想LinearLayout真的不同地解释WRAP_CONTENT?或者这是一个错误?

感谢。

1 个答案:

答案 0 :(得分:1)

如果您要android:layout_weight=1,则应将RecyclerView添加到android:height="0dp" 更改您的代码,如下所示

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    ... other layout codes
    <android.support.v7.widget.RecyclerView
        android:id="@+id/xxx"
        style="@style/MarginLeftDetail"
        android:layout_width="match_parent"
        android:layout_weight= "1"
        android:layout_height="0dp"
    />
     ... other layout codes
</LinearLayout>