制作两张宽度相同的桌子

时间:2014-03-18 14:33:17

标签: android android-layout

在我的RelativeLayout中,我有一张图像和两张桌子并排。 图像有一个固定的宽度,我希望表格填充剩余的区域,但宽度相等。

目前,第一个表格宽度等于其中最宽的textView,第二个表格填充屏幕宽度。

现在的样子:

 _________
|         | +---------+ +-----------------+
|         | | Table 1 | |     Table 2     |
|  Image  | +---------+ +-----------------+
|         | |         | |                 |
|_________| +---------+ +-----------------+

我希望它看起来如何:

 _________
|         | +-------------+ +-------------+
|         | |   Table 1   | |   Table 2   |
|  Image  | +-------------+ +-------------+
|         | |             | |             |
|_________| +-------------+ +-------------+

编辑:我知道我应该使用GridView而不是表格,但我需要支持API 9。

PasteBin上的XML。

3 个答案:

答案 0 :(得分:3)

为每张桌子设置宽度为0dp,权重为1

所以它们在剩余空间之间均匀分布。

 android:layout_width="0dp"
 android:layout_weight="1"

答案 1 :(得分:3)

伪:

<LinearLayout
    width="match_parent"
    heigth="match_parent" 
    orientation="horizontal" >

    <ImageView
        width="50px"
        heigth="50px" />

    <TableLayout 
        width="0dp"
        heigth="match_parent"
        weigth="1" />

    <TableLayout 
        width="0dp"
        heigth="match_parent"
        weigth="1" />

</LinearLayout>

答案 2 :(得分:1)

在这里,您可以使用RelativeLayout,但对于您希望具有相同宽度的表格,您必须使用嵌套的LinearLayout才能设置其权重。

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:background="@color/white">

    <ImageView
       android:layout_width="100dp"
       android:layout_height="100dp"
       android:id="@+id/imageView"
       android:layout_alignParentTop="true"
       android:layout_alignParentLeft="true"
       android:layout_alignParentStart="true"
       android:layout_margin="15dp" />

    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:attr/textAppearanceLarge"
       android:text="Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem"
       android:id="@+id/textView"
       android:layout_alignTop="@+id/imageView"
       android:layout_alignParentRight="true"
       android:layout_alignParentEnd="true"
       android:layout_toRightOf="@+id/imageView"
       android:textAlignment="center"
       android:textSize="20dp"
       android:layout_marginRight="15dp" />

    <LinearLayout 
        android:id="@+id/nestedLinearLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/imageView"
        android:layout_alignBottom="@+id/imageView">

    <TableLayout
       android:layout_width="0dp"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       android:id="@+id/tableLayout"
       android:gravity="center" >

        <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textAppearance="?android:attr/textAppearanceMedium"
           android:text="Lorem Ipsum"
           android:id="@+id/textView2"
           android:textSize="14dp"
           android:gravity="center" />

        <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textAppearance="?android:attr/textAppearanceMedium"
           android:text="999999"
           android:id="@+id/textView3"
           android:gravity="center" />

    </TableLayout>

    <TableLayout
       android:layout_width="0dp"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       android:layout_alignTop="@+id/tableLayout"
       android:layout_toRightOf="@+id/tableLayout"
       android:gravity="center" >

        <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textAppearance="?android:attr/textAppearanceMedium"
           android:text="Lorem Ipsum"
           android:id="@+id/textView4"
           android:textSize="14dp"
           android:gravity="center" />

        <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textAppearance="?android:attr/textAppearanceMedium"
           android:text="999999"
           android:id="@+id/textView5"
           android:gravity="center" />
    </TableLayout>

    </LinearLayout>

</RelativeLayout>