RelativeLayout有2个ImageView和3个TextView

时间:2012-06-10 13:39:09

标签: android layout

我想要这样的布局: Custom Layout

到目前为止,我已经有了这个布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="@drawable/game1_background"
     >

    <ImageView 
        android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:id="@+id/flag1"
        />
    <TextView
        android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
         android:layout_centerVertical="true"

         android:id="@+id/team1"
        />
    <TextView 
        android:layout_width="wrap_content"
    android:layout_height="wrap_content" 



        />

<TextView
        android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
         android:layout_centerVertical="true"

         android:id="@+id/team2"
        />
<ImageView 
        android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:id="@+id/flag2"
        />
</RelativeLayout>

但这不起作用。有人可以说为什么? 感谢

3 个答案:

答案 0 :(得分:2)

我尽量让它尽可能接近你拥有的东西。我明白了:

enter image description here

这是你需要做的事情

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
     >
    <ImageView 
        android:id="@+id/image1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:background="@drawable/ic_launcher"
            />
    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerVertical="true"
        android:layout_toRightOf="@id/image1"
        android:text="Text1"
        />
    <TextView 
        android:id="@+id/text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerInParent="true"
        android:text="Text2"
        />

    <TextView
        android:id="@+id/text3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@id/image2"
        android:text="Text3"
        />
<ImageView 
        android:id="@+id/image2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/ic_launcher"
        />
</RelativeLayout>

使用android:marginandroid:padding根据需要调整文本框位置。

答案 1 :(得分:1)

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center_vertical"
    android:background="@drawable/game1_background">
  <ImageView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/flag1"/>
  <TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:id="@+id/team1"/>
  <TextView 
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"/>
  <TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" 
     android:id="@+id/team2"/>
  <ImageView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/flag2"/>
</LinearLayout>

注意参数:android:gravity =“center_vertical”,它会垂直传递所有孩子。

答案 2 :(得分:1)

使用RelativeLayout,你必须做这样的事情......

<ImageView
    android:id="@+id/flag1"
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:layout_alignParentLeft="true"
    android:layout_margin="10dp"
    android:background="@drawable/ic_launcher" />

<TextView
    android:id="@+id/team1"
    android:layout_width="wrap_content"
    android:gravity="center"
    android:layout_height="60dp"
    android:layout_margin="10dp"
    android:layout_toRightOf="@id/flag1"
    android:text="hello" />

<TextView
    android:id="@+id/team3"
    android:layout_width="wrap_content"
    android:gravity="center"
    android:layout_height="60dp"
    android:layout_margin="10dp"
    android:layout_toRightOf="@id/team1"
    android:text="gth" />

<TextView
    android:id="@+id/team2"
    android:layout_width="wrap_content"
    android:gravity="center"
    android:layout_height="60dp"
    android:layout_margin="10dp"
    android:layout_toRightOf="@id/team3"
    android:text="gth" />

<ImageView
    android:id="@+id/flag2"
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:layout_margin="10dp"
    android:layout_toRightOf="@id/team2"
    android:background="@drawable/ic_launcher"
    android:text="gth" />

请根据您的规格调整尺寸。

RelativeLayout有一组不同的属性可用于在屏幕内定位视图,它易于学习且灵活,请参阅Android documentataion of RelativeLayout了解更多信息。