Динамический размер просмотров в процентах (или аналогичный)? - PullRequest
2 голосов
/ 08 марта 2010

В качестве примера: допустим, у меня есть 2 EditText s и одна кнопка, которую я использую в качестве формы для входа. Я хочу, чтобы EditTexts были одинакового размера, один за другим, с логином Button , равным половине их ширины. Как то так:

example login screenshot

Единственный способ найти для кнопки 1/2 ширины (но при этом сохранить ее динамический размер) - это использовать TableLayout с пустым представлением в качестве первого поля. , Примерно так:

    <TableLayout
        android:stretchColumns="0,1"
        android:shrinkColumns="0,1"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:layout_below="@id/login_EditText_password">
        <TableRow>
            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />
            <Button 
                android:text="@string/login_login" 
                android:id="@+id/login_Button_login" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content" />
        </TableRow>
    </TableLayout>

Это похоже на ужасный хак, и должен быть лучший способ. Вы знаете одного?

1 Ответ

2 голосов
/ 08 марта 2010

Обычно layout_weight используется для достижения процентного поведения . Но это обычно в родительском представлении. Вы можете создать пустое представление, чтобы занять другую половину в этой ситуации, но это странный случай, когда кнопка должна быть на половину ширины вышеуказанных полей.

Редактировать , вот пример:

    <LinearLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:layout_below="@id/login_EditText_password"
        android:orientation="horizontal">
        <View
            android:layout_width="0dip"
            android:layout_height="0dip"
            android:layout_weight="1" />
        <Button 
            android:text="@string/login_login" 
            android:id="@+id/login_Button_login" 
            android:layout_width="0dip" 
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...