Вес макета Android (некоторые объекты с минимальным размером, а некоторые с максимальным) - PullRequest
0 голосов
/ 18 марта 2012

У меня проблема похожа на этот вопрос: Android Layout Weight но, похоже, нет такого же ответа ...

Внутри таблицы я хотел бы отобразить 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:

Решение, если создать LinearLayout внутри TableRow:

 <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 голосов
/ 18 марта 2012

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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...