如何创建包含4列的TableLayout?

时间:2010-09-24 20:26:46

标签: android layout android-linearlayout tablelayout

我在创建一个包含4列的表格布局时遇到了问题,这些列横向跨越。

我希望我的行看起来像这样:

AAPL | 200.00 |图像分割器| 1.53(+ 1.5%)

我希望200.00正确对齐,以及1.53(+ 1.5%)。

<?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="@drawable/stocks_gradient" android:orientation="horizontal">
    <TableLayout android:layout_width="wrap_content"
        android:layout_toLeftOf="@+id/priceText" android:layout_height="wrap_content"
        android:id="@+id/TableLayout01">
        <TableRow android:layout_width="wrap_content"
            android:layout_below="@+id/nameText" android:id="@+id/TableRow01"
            android:layout_height="wrap_content"></TableRow>
        <TextView android:id="@+id/nameText" android:layout_height="wrap_content"
            android:padding="5dip" android:layout_alignParentLeft="true"
            android:text="Symbol" android:textStyle="bold" android:textSize="24sp"
            android:layout_width="100dp" android:textColor="#4871A8" />
        <TextView android:id="@+id/priceText" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:padding="5dip"
            android:layout_toRightOf="@+id/nameText" android:gravity="right"
            android:text="100" android:textStyle="bold" android:textSize="24sp"
            android:textColor="#4871A8" />
        <ImageView android:layout_toLeftOf="@+id/changeText"
            android:id="@+id/verticalDivider" android:background="@drawable/vertical_divider"
            android:layout_width="wrap_content" android:layout_height="48dp"></ImageView>
        <TextView android:id="@+id/changeText" android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/priceText" android:gravity="right"
            android:textSize="18sp" android:text="3.07(+1.08%)" android:padding="12dip"
            android:layout_width="fill_parent" />
    </TableLayout>

2 个答案:

答案 0 :(得分:2)

android:layout_toLeftOfandroid:layout_toRightOfandroid:layout_below是与RelativeLayout一起使用的属性。你没有RelativeLayout。因此,上面的XML中使用的那些属性对你没有好处。

要创建包含四列的行,请拥有TableRow小部件的四个子项。

我不清楚你将如何实现你的右对齐效果。可能android:gravity会让你到那里,但我怀疑这个问题比这更复杂。

答案 1 :(得分:0)

android:gravity应该就是您所需要的,因为您的TextView已经在width=fill_parent中,例如它会将文本对齐到视图内的右侧。

否则您也可以使用android:layout_gravity="right",例如如果你有width=wrap_content的视图,你需要告诉容器如何对齐它。