在LinearLayout中最后一次显示图像

时间:2011-11-23 22:45:59

标签: android android-imageview android-linearlayout

这让我困惑了两天了。我有如下的LinearLayout:

        <LinearLayout
                android:background="@drawable/rounded_rect_wht_bg"
                android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                android:orientation="horizontal"
                android:layout_margin="5dp"
                android:minHeight="30dp"
                android:padding="5dp"
                android:visibility="gone">
            <ImageView
                    android:id="@+id/timage"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="5dp"
                    android:layout_marginRight="10dp"
                    android:layout_marginLeft="10dp"
                    android:layout_marginBottom="5dp"
                    android:scaleType="fitXY"
                    />
            <TextView
                    android:id="@+id/tname"
                    android:layout_width="wrap_content"
                    android:layout_height="fill_parent"
                    android:layout_marginRight="5dp"
                    android:textColor="@android:color/black"
                    android:textSize="13sp"
                    android:textStyle="bold"/>
            <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:src="@drawable/ticon" />
        </LinearLayout>

最后一个ImageView(ticon)没有显示。我只看到了timage和tname。但是,如果我改变它:

<LinearLayout>
        <ImageView android:src="@drawable/ticon" />
        <ImageView android:id="@+id/timage" />
        <TextView android:id="@+id/tname" />
</LinearLayout>

就在那里。这是怎么回事?

2 个答案:

答案 0 :(得分:1)

TextView的内容可能会推出ImageView。尝试使用layout_weight =“1”将所有剩余空间分配给TextView。

答案 1 :(得分:0)

由于您将TextView的layout_height定义为“fill_parent”,因此将占用剩余空间。这就是它正确显示最后声明的原因:图像只使用他们需要的空间(layout_height =“wrap_content”)。

根据您的想法,您可以尝试将TextView的layout_height设置为“wrap_content”,或者,如果您希望TextView填充图像之间的空间,我建议您使用RelativeLayout:< / p>

<RelativeLayout
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     ...>
     <ImageView
          android:id="@+id/timage"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          ...
          android:layout_alignParentTop="true" />
     <ImageView
          android:id="@+id/ticon"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          ...
          android:layout_alignParentBottom="true" />
     <TextView
          android:id="@+id/tname"
          android:layout_width="wrap_content"
          android:layout_height="fill_parent"
          ...
          android:layout_below="@+id/timage"
          android:layout_above="@+id/ticon" />
</RelativeLayout>