如何在同一行中的LinearLayout中对齐两个TextView

时间:2014-07-08 14:29:28

标签: android android-layout

我在LinearLayout中有两个TextView,我想在同一行中将它们对齐一个左(或中)和一个到右。这该怎么做?我尝试使用引力,但他们忽略了它。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="TextView" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="right"
    android:text="TextView" />

</LinearLayout>

5 个答案:

答案 0 :(得分:1)

android:gravity用于设置视图内容的重力。但是,在您的情况下,宽度为wrap_content,因此内容无处可进入文本视图。

使用RelativeLayout layout_width作为match_parent。然后将android:layout_alignParentLeft="true"android:layout_alignParentRight="true"与textViews一起使用。

答案 1 :(得分:1)

最简单的方法是将LinearLayout更改为RelativeLayout

您可以使用android:layout_alignParentRight="true"android:layout_alignParentLeft="true"。或者以android:layout_centerInParent="true"

为中心

See here why gravity won't work

您正在使用gravity代替layout_gravity这是您想要的。 This post should help clarify the difference

The docs显示可用的属性。

答案 2 :(得分:0)

在第二个textview中使用或不使用android:gravity并尝试。     

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:layout_weight="1" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:gravity="right"
        android:layout_weight="1" />
</LinearLayout>

答案 3 :(得分:0)

如果LinearLayout为Vertical,则每行只能放置一个对象。 您可以使用RelativeLayout,或者将包含textviews

的LinearLayout Horizo​​ntal放入一行

离。

<LinearLayout vertical> <LinearLayout horizontal> <textview 1></> <textview 2></> </LinearLayout> </LinearLayout>

答案 4 :(得分:0)

我使用GridLayout解决了所有问题......最好的事情是bcos你不需要将anithing对齐到什么都没有...只需将你想要的东西放入矩阵(行,列)......这将是允许您可视化所有字段,准确包装您的数据内容也是完美的!