Android layout_weight(混合一些最小尺寸和一些最大尺寸的物体)

时间:2012-03-18 15:02:07

标签: android layout

我遇到与this question: Android Layout Weight类似的问题 但它似乎没有相同的答案......

在tablerow中,我想显示TextViews和EditTexts,其中TextViews占用最小尺寸,EditTexts共享剩余大小:

    'Size:[   edit1   ] x [   edit2   ] pixels'

我猜想以下实现,但它显示:

    'Size:                      [] x [] pixels'

有什么问题?

    <TableRow
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:layout_weight="1"
    android:gravity="center" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Size:" />

    <EditText
        android:id="@+id/desired_width"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:inputType="number" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="x" />

    <EditText
        android:id="@+id/desired_height"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:inputType="number" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="pixels" />
</TableRow>

我的声望低于100,无法回答我自己的问题,但是zapl是对的,这是TableRow和LinearLayout之间的行为问题:

在TableRow中创建LinearLayout的解决方案:

 <TableRow
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_margin="5dp" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Size:" />

        <EditText
            android:id="@+id/desired_width"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:inputType="number" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="x" />

        <EditText
            android:id="@+id/desired_height"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:inputType="number" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="pixels" />
    </LinearLayout>
</TableRow>

1 个答案:

答案 0 :(得分:0)

android:layout_weight仅适用于LinearLayout。

这样的事可能适合你:

<TableLayout
    android:id="@+id/tableLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="1,3" >

应该增长第1列和第3列(从0开始)