基本上我有两个类似的布局,有不同的创建方法。问题是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
?或者这是一个错误?
感谢。
答案 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>