在另一个中包含布局:wrap_content的奇怪行为

时间:2014-03-02 18:39:36

标签: android android-layout layout

我有一个包含另一个布局的布局(主体)。在主要布局中,我包括另一个像

<include
    android:id="@+id/other_layout_id"
    android:layout_height="match_parent"
    layout="@layout/other_latyout_name" />

这是我的其他布局的代码,代表一个带有一些元素的自定义行(一些文本和一个按钮):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative_row_opponent"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<!-- other widget, all with wrap_content -->

如果在主要布局内,请在include标签中指定

android:layout_height="wrap_content"

其他布局占用主要布局内的所有垂直空间,我不期望这种行为。为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

根据http://developer.android.com/training/improving-layouts/reusing-layouts.html#Include

  

您还可以通过在<include/>标记中指定包含布局的根视图来覆盖所有布局参数(任何android:layout_ *属性)。

另外

  

但是,如果要使用<include>标记覆盖布局属性,则必须覆盖android:layout_heightandroid:layout_width才能使其他布局属性生效。

所以你应该做的是

<include
    android:id="@+id/other_layout_id"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    layout="@layout/other_layout_name" />

此处我已按照网站的建议添加了android:layout_width属性和android:layout_height

我还没有测试过它。但希望它有所帮助。