Android с фиксированной шириной EditText в TableRow - PullRequest
4 голосов
/ 21 июня 2011

Я полностью застрял, пытаясь получить виджеты EditText фиксированной ширины в TableRow. Я пытаюсь разместить два EditText рядом с равной шириной (около 20 dip), но независимо от того, какое свойство я пытаюсь установить первый EditText, является длинным и, очевидно, не может быть изменен размер.

Большое спасибо:

<TableRow 
  android:layout_height="wrap_content"
  android:baselineAligned="false" 
  android:id="@+id/tableRow3" 
  android:gravity="center"
  android:stretchColumns="1" 
  android:layout_width="match_parent">
  <TextView 
    android:id="@+id/textView6" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="1" 
    android:paddingLeft="36dip">
  </TextView>
  <EditText
    android:layout_height="wrap_content" 
    android:id="@+id/editText2" 
    android:inputType="number" 
    android:layout_width="20dip">
  </EditText>
  <EditText 
    android:layout_height="wrap_content" 
    android:id="@+id/editText1" 
    android:inputType="number"
    android:layout_width="wrap_content">
    <requestFocus></requestFocus>
  </EditText>
</TableRow>

Ответы [ 2 ]

15 голосов
/ 21 июня 2011

Я не знаю, что TableLayout - лучший способ сделать это, он может быть громоздким, если вы не отображаете большие объемы данных и не нуждаетесь в их использовании.

Один из лучших способов, которыми яВыяснилось, что длина объектов формы распределяется так, как я хочу, используя вес, а не явно объявляя ширину.

Попробуйте следующее:

<LinearLayout ... android:orientation="horizontal" ... 
android:layout_width="match_parent" android:layout_height="wrap_content"
<TextView ... android:layout_width="0dp" ... android:layout_weight="50" />
<TextView ... android:layout_width="0dp" ... android:layout_weight="50" />
</LinearLayout>

Обязательно объявитеширина макета равна 0, это позволит макету заполниться до веса.

Это должно создать два TextViews рядом друг с другом на экране, оба заполняющие 50% экрана.Вы можете играть с разными процентами.Вы также можете использовать LinearLayout в качестве заполнителя с весом, равным%, который вы хотели бы разместить в качестве удержания.

Убедитесь, что ваши "веса" составляют до 100, чтобы представление выглядело точно так же, как вы.хочу этого.Это не обязательно, но хорошо знать, какой процент ширины экрана он займет.

6 голосов
/ 26 августа 2013

На основании этого ответа

Добавьте эту недвижимость на EditText:

android:layout_weight="1"

У меня работает.

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