将TextView保持在按钮左侧的同时居中?

时间:2015-02-26 10:47:05

标签: android android-layout android-relativelayout

要求

我有一个按钮和一个textview,我希望textview在父视图中居中,而按钮在父视图的右侧。

方法

所以我拿了一个RelativeLayout,使textview layout_centerHorizo​​ntal =" true",然后按钮layout_alignParentRight =" true"。

代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/title_header_TV"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="TextView" />
       <!--  Doesnt work -->
       <!--  android:layout_toLeftOf="@+id/right_button"  -->

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

</RelativeLayout>

问题

因此,当文本太长时,它会被写在按钮顶部。

我尝试过layout_toLeftOf =&#34; @ + id / right_button&#34;在textview上,但现在TextView不再居中。

6 个答案:

答案 0 :(得分:1)

试试这个。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1">


    <View
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"/>

    <TextView
        android:id="@+id/title_header_TV"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="TextView" />

    <Button
        android:id="@+id/right_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Button" />


</TableRow>
</RelativeLayout>

答案 1 :(得分:0)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent" >
   <!--  Doesnt work -->
   <!--  android:layout_toLeftOf="@+id/right_button"  -->
   <Button
    android:id="@+id/right_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"        
    android:text="Button" />
  <TextView
    android:id="@+id/title_header_TV"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/right_button"
    android:layout_alignBottom="@+id/right_button"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="80dp"
    android:text="TextView" />

试试这个

答案 2 :(得分:0)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TextView
    android:id="@+id/title_header_TV"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_toLeftOf="@+id/right_button"
    android:gravity="center"
    android:text="This is a test message, This is a test message This is a test message " />
<!-- Doesnt work -->
<!-- android:layout_toLeftOf="@+id/right_button" -->

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

</RelativeLayout>

答案 3 :(得分:0)

请改为 `

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

<TextView
    android:id="@+id/title_header_TV"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@id/right_button"
    android:layout_alignTop="@id/right_button"
    android:layout_centerHorizontal="true"
    android:layout_toLeftOf="@id/right_button"
    android:gravity="center"
    android:text="TextView" />

`

答案 4 :(得分:0)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent" >
   <!--  Doesnt work -->
   <!--  android:layout_toLeftOf="@+id/right_button"  -->

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="15dp"
    android:layout_marginTop="17dp"
    android:gravity="center"
    android:text="Add your demo text here for small and large"
    android:layout_toLeftOf="@+id/button1"/>
 <Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/textView1"
    android:layout_marginLeft="19dp"
    android:text="Button" 
    android:layout_alignParentRight="true"/>
</RelativeLayout>

答案 5 :(得分:0)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TextView
    android:id="@+id/title_header_TV"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:layout_toLeftOf="@+id/right_button"
    android:gravity="center"
    android:text="TextView " />

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

</RelativeLayout>

检查一下。一个非常简单的解决方案