TextView包装导致相邻的ImageView消失

时间:2012-06-12 07:42:46

标签: android textview imageview android-linearlayout

我对一个我无法弄清楚的简单问题感到困惑。有一个显示按钮,包括图像(标志),文本和另一个图像(插入符号)。这三个位于布局容器中,由于旁边有另一个按钮,因此会为其分配权重。以下是布局容器的外观:

   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/countryselect"
     android:orientation="horizontal"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight=".88"
     android:gravity="center_vertical"
     android:clickable="true" 
     android:onClick="clickHandler" >
       <ImageView
         android:id="@+id/countryflag"
         android:layout_width="wrap_content"
         android:layout_height="fill_parent"
         android:paddingRight="8dp"        
         android:src="@drawable/flag_argentina" />
       <TextView
         android:id="@+id/countryname"
         android:layout_width="wrap_content"
         android:layout_height="fill_parent"
         android:text="@string/app_title"
         android:textStyle="bold"
         android:textColor="#4898c0" />
       <ImageView
         android:layout_width="wrap_content"
         android:layout_height="fill_parent"
         android:paddingLeft="4dp"
         android:src="@drawable/corner" />
   </LinearLayout>

如果TextView中的文本适合一行,那么整个工作正常。如果没有,即,如果文本包裹到两行,则插入符号图像完全消失(而标志显示为垂直居中)。标志图像和插入符号具有相同的像素高度。请注意,此LinearLayout右侧的其他按钮(上面的代码中未显示)仍然可以正常显示,因此问题不在于插入符号图像是从屏幕右侧推出的。

知道为什么会发生这种情况/我可以做些什么来保持插入符号图像的可见性?感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

随着文本的扩展,它将2md图像从屏幕中移出,因此使用wieght some修复TextView的宽度

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/countryselect"
     android:orientation="horizontal"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight=".88"
     android:gravity="center_vertical"
     android:clickable="true" 
     android:onClick="clickHandler" 
     android:weightSum="1">
       <ImageView
         android:id="@+id/countryflag"
         android:layout_width="0dp"
         android:layout_height="fill_parent"
         android:paddingRight="8dp"        
         android:src="@drawable/launcher_icon"
         android:layout_weight=".3" />
       <TextView
         android:id="@+id/countryname"
         android:layout_width="0dp"
         android:layout_height="fill_parent"
         android:text="@string/app_title"
         android:textStyle="bold"
         android:textColor="#4898c0" 
          android:layout_weight=".4"/>
       <ImageView
         android:layout_width="0dp"
         android:layout_height="fill_parent"
         android:paddingLeft="4dp"
         android:src="@drawable/launcher_icon" 
          android:layout_weight=".3"/>
   </LinearLayout>