0

我试图在左对齐、居中和右对齐的同一行上获得 3 个 TextView。它们都在左侧。它们都在一个水平容器中。我正在使用 layout_gravity 设置药水

代码

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



   <ImageView           
            android:id="@+id/butMenu"       
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
               android:layout_gravity="center"
            android:src="@drawable/menu"

        />    

   <LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#fff7f1d2"
    android:orientation="horizontal" >
    <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="left"
               android:layout_gravity="left"
                android:textStyle="bold"
            />    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="center"
               android:layout_gravity="center"
                android:textStyle="bold"
            />    


            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="In case of Emergency: Break Glass"
               android:layout_gravity="right"
                android:textStyle="bold"
            />    


    </LinearLayout> 

    </LinearLayout> 
4

2 回答 2

0

由于您将 LinearLayout 的宽度设置为fill_parent,因此您可以更简单地执行此操作:

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#fff7f1d2"
    android:orientation="horizontal" >

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"a
        android:layout_weight="1"
        android:text="left"
        android:textStyle="bold" /> 

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="center"
        android:textStyle="bold" />    

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="In case of Emergency: Break Glass"
        android:textStyle="bold" />    

</LinearLayout> 

这里的区别在于android:layout_weight属性,因为所有兄弟姐妹的权重相同,每个兄弟姐妹TextView将占据可用宽度的 33%。

于 2013-10-08T15:44:00.277 回答
0

Gravityleft 和 right 对 a 不起作用,horizontal LinearLayout因为它已经从左到右排列它们。你最好将它们包装在 a 中RelativeLayout并使用它的属性。

<RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#fff7f1d2">
   <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="left"
        android:textStyle="bold"/>    
   <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="center"
        android:layout_centerInParent="true"    <!-- This property -->
        android:textStyle="bold"/>    

   <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="In case of Emergency: Break Glass"
        android:layout_alignParentRight="true"  <!-- And this property -->
        android:textStyle="bold" />    

</RelativeLayout> 

默认情况下,第一个TextView将向右对齐。

于 2013-10-08T13:25:58.490 回答