#android #android-layout #android-linearlayout
Вопрос:
Я новичок в Android и пытаюсь изучить раскладку таблиц. Я хочу создать экран калькулятора с использованием компоновки таблицы и линейной компоновки, но я не смог установить высоту элементов одинакового размера в вертикальной ориентации линейной компоновки. Я ставлю вес=1 для всех элементов, чтобы установить одинаковый размер ширины.
(Я знаю, что могу сделать один и тот же экран с разными макетами, но я хочу использовать вертикальную линейную компоновку и компоновку таблицы.)
Вот мой XML-файл:
lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".ExampleActivity4"gt; lt;EditText android:id="@ id/editTextinput" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" tools:ignore="SpeakableTextPresentCheck" /gt; lt;TableLayout android:layout_width="match_parent" android:layout_height="match_parent"gt; lt;TableRow android:layout_width="match_parent" android:layout_height="match_parent" gt; lt;Button android:id="@ id/btn7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="7" /gt; lt;Button android:id="@ id/btn8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="8" /gt; lt;Button android:id="@ id/btn9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="9" /gt; lt;Button android:id="@ id/btnminus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="-" /gt; lt;/TableRowgt; lt;TableRow android:layout_width="match_parent" android:layout_height="match_parent" gt; lt;Button android:id="@ id/btn4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="4" /gt; lt;Button android:id="@ id/btn5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="5" /gt; lt;Button android:id="@ id/btn6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="6" /gt; lt;Button android:id="@ id/btnplus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text=" " /gt; lt;/TableRowgt; lt;TableRow android:layout_width="match_parent" android:layout_height="match_parent" gt; lt;Button android:id="@ id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="1" /gt; lt;Button android:id="@ id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="2" /gt; lt;Button android:id="@ id/btn3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="3" /gt; lt;Button android:id="@ id/btn0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="0" /gt; lt;/TableRowgt; lt;TableRow android:layout_width="match_parent" android:layout_height="match_parent" gt; lt;Button android:id="@ id/btnequal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="=" /gt; lt;Button android:id="@ id/btnclear" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="CLEAR" /gt; lt;/TableRowgt; lt;/TableLayoutgt; lt;/LinearLayoutgt;
Комментарии:
1. Если я правильно понял, используйте
android:stretchColumns="*"
внутреннийtableLayout
тег. Он автоматически растянет весь столбец в соответствии с родительским2. Просто дал короткий ответ через комментарий