2

我有一个看起来像这样的视图:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingTop="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingBottom="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<RelativeLayout android:id="@+id/header"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:orientation="horizontal" 
    android:paddingTop="5dp"
    android:paddingBottom="10dp"
    android:paddingLeft="15dp"
    android:paddingRight="15dp">

    <ImageView android:id="@+id/title_icon"
        android:layout_width="12dp"
        android:layout_height="12dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_gravity="center_vertical"
        android:src="@drawable/title_icon" />

    <LinearLayout android:id="@+id/title_layout"
        android:layout_toRightOf="@id/title_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="10dp"
        android:orientation="vertical" >

        <TextView android:id="@+id/title_text"
            android:text="@string/activity_complete"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_gravity="center_vertical"
            android:paddingRight="15dp"
            android:textSize="12dp"
            android:textStyle="bold"/>

    </LinearLayout>

    <TextView android:id="@+id/status_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:textSize="8dp" />

</RelativeLayout>

<TextView android:id="@+id/message_text" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="5dp"
    android:layout_marginLeft="0dp"
    android:layout_marginRight="0dp"
    android:layout_marginBottom="5dp"
    android:paddingLeft="15dp"
    android:textSize="10dp"/>

<ImageView android:id="@+id/main_image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/grey"
    android:padding="5dp"/>

</LinearLayout>

我的问题是主 LinearLayout 视图不 match_parent 或 fill_parent。它似乎只想包含其中最小的项目。在我的情况下,它将导致与 main_image 相同的宽度,切断其他所有内容。但是,如果我将 main_image 设置为 visibility.gone,那么它将匹配 message_text 的宽度。

我已经尝试删除除 main_image 之外的所有内容,并且主 LinearLayout 仍然只适合图像宽度。

另一件事是这个布局被膨胀成另一个设置为fill_parent的LinearLayout。

4

2 回答 2

3

将 ImageView 包装在另一个 LinearLayout 中解决了这个问题。

于 2012-10-11T21:23:54.830 回答
2

我刚刚遇到了这个问题——将一个配置为“match_parent”的LinearLayout添加到另一个LinearLayout,但内部布局没有正确填充外部布局。

最初我这样做是为了添加布局:

LinearLayout inner = getLayoutInflater().inflate(R.layout.inner, null);
outer.addView(inner, 0);

经过几分钟的恼怒后,我尝试了这个:

LinearLayout inner = getLayoutInflater().inflate(R.layout.inner, outer);

inner匹配outer父宽度和高度。

于 2013-11-25T21:13:03.810 回答