Android - RelativeLayout问题

时间:2011-11-18 22:37:01

标签: android android-layout

在相对布局中,图像根据您的xml文件级联在另一个上面。你如何表明最顶层的图像应该是什么?

有没有办法在代码而不是xml中执行此操作?

我附加了我的XML文件以供参考:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" 
>

<ImageView
    android:id="@+id/img1"
    android:src="@drawable/payarrow"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
<ImageView
    android:id="@+id/img2"
    android:src="@drawable/chargearrow"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />
<ImageView
    android:id="@+id/landingDockLeft"
    android:src="@drawable/landingdock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />
<ImageView
    android:id="@+id/landingDockRight"
    android:src="@drawable/landingdock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />  

3 个答案:

答案 0 :(得分:1)

在xml中,您可以使用layout_alignParentTop="true"将视图放在最顶层。然后自由使用layout_below="@+id/id_of_view_to_be_below"以确保视图始终位于顶视图之下。

在代码中,您必须将RelativeLayout.LayoutParams与相关属性一起使用,并将它们应用于子视图。

xml中的示例:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" 
>

<ImageView
    android:id="@+id/img1"
    android:src="@drawable/payarrow"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"/>

<ImageView
    android:id="@+id/img2"
    android:src="@drawable/chargearrow"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/img1"
    />
<ImageView
    android:id="@+id/landingDockLeft"
    android:src="@drawable/landingdock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/img2"
    />
<ImageView
    android:id="@+id/landingDockRight"
    android:src="@drawable/landingdock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/landingDockLeft"
    />

这会将它们全部堆叠在一起,img1视图位于整个事物的最顶端。

编码方式为here

答案 1 :(得分:0)

android:layout_alignParentTop =“true”

答案 2 :(得分:0)

这是一个例子: 1)如果你把

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" 
>

<ImageView
    android:id="@+id/img1"
    />    
<ImageView
    android:id="@+id/img2"
    />

ID为img1的ImageView将位于带有id img2的ImageView下。


2)如果你想将带有id img2的TextView放在ImageView下,你会这样做

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    >

    <ImageView
        android:id="@+id/img1"
        />
    <TextView
        android:id="@+id/txt1"
        />        
    <ImageView
        android:id="@+id/img2"
        />

所以这是订购的问题。