Android SDK将两个元素对齐在中心

时间:2010-10-22 18:56:59

标签: android

我试图在我的xml文件中对齐两个元素。 我想在同一行显示名为“Description”的TextView和名为“Value”的TextView。描述应该与中心对齐,值应该与中心对齐。但是下面的引力似乎并没有影响到它们。

我假设我应该避免使用AbsoluteLayout,因为屏幕尺寸不同。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:id="@+id/LinearLayout01"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/TextViewDescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="@+id/TextView01" >
    </TextView>

    <TextView
        android:id="@+id/TextViewValue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:text="@+id/TextView02" >
    </TextView>

</LinearLayout>

我也看过TableLayout,但也很挣扎。

在屏幕下方创建一组中心对齐的描述/值的正确方法是什么,以便它们在纵向和横向视图中都显示正常?

2 个答案:

答案 0 :(得分:1)

试试这个:

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

    <ImageView
        android:id="@+id/dummy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true" />

    <TextView
        android:id="@+id/TextViewValue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/dummy"
        android:text="@+id/TextView01" />

    <TextView
        android:id="@+id/TextViewDescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/dummy"
        android:text="@+id/TextView02" />

</RelativeLayout>

答案 1 :(得分:0)

在TableRow中使用android:gravity="center"

以下想法并不优雅。仅供参考。

使用RelativeLayout。 创建一个不可见的控件作为布局centerHorizo​​ntal。 然后使用Layout toLeftOf和toRightOf到此控件,使控件向左或向右中心。 也许“控制”必须是布局。

另一种方法是在RelativeLayout中使用TableLayout,如果你的控件是以dip的形式测量的。 在RelativeLayout中使用center_horizo​​ntal,并为两个控件指定TableLayout的宽度。然后将控件放在TableRow中。