2012-07-12 83 views
2

我想设置一个布局,谁将用于每行ListActivity。每行包含左侧的灯泡图标,中间的文本,右侧的钢笔图标。RelativeLayout避免图像上的文字

我找不到解决方案,以避免在中心的文本部分通过2个图像,如果它很大。

下面是我在屏幕上了:

Actual Display

当文本是长时间显示在灯泡图标笔图标

如何,我需要修改我的布局,以避免它?

XML:

<RelativeLayout 
    android:id="@+id/linearLayoutEquipementInfo" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="20sp" 
    android:orientation="horizontal" > 

    <ImageView 
     android:id="@+id/equipementImage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_margin="10sp" 
     android:contentDescription="@string/status" /> 

    <TextView 
     android:id="@+id/equipementName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:layout_margin="10sp" 
     android:gravity="center" 
     android:text="title" 
     android:textSize="22sp" /> 

    <ImageView 
     android:id="@+id/equipementEdit" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_margin="1sp" 
     android:background="@null" 
     android:contentDescription="@string/editEquipmentName" 
     android:src="@android:drawable/ic_menu_edit" /> 
</RelativeLayout> 

回答

2

您可以添加2个参数的TextView:

android:layout_toRightOf="@id/equipementImage" 
android:layout_toLeftOf="@id/equipementEdit" 
+0

这是做的伎俩,谢谢。对于其他用户来说,'ImageView' * equipementEdit *需要在'TextView'之前定义,以便能够使用'“@ id/equipementEdit”' – 2012-07-12 10:13:45

0

使用RelativeLayout属性android:layout_below其中将:

位置低于给定的锚视图ID该视图的顶部边缘。

所以在你的情况下,你将不得不在TextView上使用android:layout_below="@id/equipementImage"

+0

谢谢你的回答,但我不想将文字放在拖曳图像的下面,但它们之间。 – 2012-07-12 10:01:10

0

我觉得你可以在布局XML使用重量总和

这样子。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/linearLayoutEquipementInfo" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_marginTop="20sp" 
    android:weightSum="1.0" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.1" 
     android:orientation="horizontal" 
     android:weightSum="1.0" > 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.15" 
      android:src="@drawable/ic_launcher" /> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.70" 
      android:gravity="center" 
      android:text="TextView" /> 

     <ImageView 
      android:id="@+id/imageView2" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="0.15" 
      android:src="@drawable/ic_launcher" /> 

    </LinearLayout> 

</LinearLayout> 

这可能会解决您的问题。