将textview在按钮上方左右放置

时间:2012-09-17 13:27:58

标签: android android-layout relativelayout

我有以下相对布局:

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

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

<TextView
    android:id="@+id/tv2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView"
    android:layout_alignLeft="@id/button1"/>

<TextView
    android:id="@+id/tv1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView"
    android:layout_alignRight="@id/button1" />
</RelativeLayout>

<Button
    android:id="@+id/button1"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:text="Button" />

</LinearLayout>

但这并没有给我我预期的结果 我想实现以下目标:

TV1 -------------- TV2
| ------ ------按钮|

所以,我希望textview1从按钮的左角开始,textview2从按钮的右边缘结束。

我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:2)

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

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

<TextView
    android:id="@+id/tv2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView"
    android:layout_alignLeft="@+id/button1"/>

<TextView
    android:id="@+id/tv1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView"
    android:layout_alignRight="@+id/button1" />

<Button
    android:id="@+id/button1"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:text="Button"
    android:layout_below="@+id/tv1" />
</RelativeLayout>  

</LinearLayout>

答案 1 :(得分:0)

试试这个

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

 <RelativeLayout
   android:layout_width="wrap_content"
   android:layout_height="wrap_content" >

 <TextView
     android:id="@+id/tv2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="TextView"
     android:layout_alignParentLeft="true"/>

 <TextView
     android:id="@+id/tv1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="TextView"
     android:layout_alignParentRight="true"/>
 </RelativeLayout>

 <Button
     android:id="@+id/button1"
     android:layout_width="200dp"
     android:layout_height="wrap_content"
     android:text="Button" />

 </LinearLayout>

答案 2 :(得分:0)

将按钮放在相对布局中。然后将其添加到按钮xml属性 -

android:layout_below="@+id/tv1"

对于tv1 textview,添加 -

android:layout_alignLeft="button1"

对于tv2 textview,添加 -

android:layout_alignRight="button1"

答案 3 :(得分:0)

试试这个

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

<RelativeLayout
   android:layout_width="match_parent"
   android:layout_height="wrap_content" >

 <TextView
     android:id="@+id/tv2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="TextView"
     android:layout_alignParentRight="true"/>

 <TextView
     android:id="@+id/tv1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="TextView"
     android:layout_alignParentLeft="true"
     android:layout_toLeftOf="@id/tv2"/>
 </RelativeLayout>


<Button
    android:id="@+id/button1"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:text="Button" />

</LinearLayout>

你需要为tv1设置android:layout_toLeftOf =“@ id / tv2”或者为tv2设置android:layout_toRightOf =“@ id / tv1”以停止相互重叠。