3

У меня есть TableLayout, и я хотел бы иметь кнопки в качестве ячеек. Все кнопки должны иметь одинаковую ширину. И все кнопки должны иметь одинаковую высоту. (Вес и высота будут разными, поскольку я хочу заполнить экран).Android TableLayout - равная ширина и равная высота ячеек - не работает, почему

Я был уверен, что делаю все правильно, но, к сожалению, только одна и та же ширина. Проблема в том, что высота - первые две строки имеют одинаковую высоту, третья - меньше (или, точнее, до тех пор, пока кнопки не содержат текста, высота такая же, но когда я помещаю текст, высота не равна). Я не мог поверить, что он не работает, поэтому я сделал даже скриншот, и я проверил расстояние в графической программе.

Мой стол:

<TableLayout 
    android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="0dip" 
android:layout_weight="1" 
android:stretchColumns="*" 
android:shrinkColumns="*" 
android:weightSum="3" 
android:padding="@dimen/dialog_margin" 
> 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:stretchColumns="*" 
     android:gravity="center" 
     android:weightSum="2"> 

     <Button 
      android:id="@+id/button_0" 
      android:layout_width="0dip" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      /> 
     <Button 
      android:id="@+id/button_1" 
      android:layout_width="0dip" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      /> 

    </TableRow> 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:stretchColumns="*" 
     android:gravity="center" 
     android:weightSum="2"> 

     // buttons analogously as in previous row.... 
    </TableRow> 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:stretchColumns="*" 
     android:gravity="center" 
     android:weightSum="2"> 

     // buttons analogously as in previous row.... 
    </TableRow> 

Я пытался также установить TableRow высоту как match_parent. Это не помогает.

И btw как shrinkColums Работает, в частности, вместе с stretchColumns? (У меня была версия с shrinkColumns и без нее, и кажется, что нет никакой разницы.

ответ

0

Я думаю, что на самом деле невозможно изменить ширину при добавлении текста. Но я думаю, вы можете попробовать это. текст пишется так:

setText("<html>your text<html>"); 

это может помочь, но, возможно, текст не будет там в полном размере

+0

, пожалуйста, скажите, будет ли это работать, мне также очень любопытно. –

+0

О. Прошу прощения. Это будет . Слэш важен. –

+0

http://docs.oracle.com/javase/tutorial/uiswing/components/html.htmlhttp://docs.oracle.com/javase/tutorial/uiswing/components/html.html –

0

Используйте это для TableLayout

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

и для каждого ряда

<TableRow 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:gravity="center"> 
+1

. Настройка layout_height для TableLayout для match_parent ничего не меняет. Даже затмение предлагает поставить 0dip здесь. Но в обоих случаях он не работает (высота последней строки меньше). Когда приходят атрибуты TableRow, это не помогает. – user2707175

+0

Странно ... Я скопировал его из xml в Eclipse, и я получаю именно то, что вы ищете. – Merlevede

+0

Странно, но в Eclipse все поля имеют одинаковую высоту и в моем случае. Но когда я запускаю его на устройстве с Android 4.0.4, они этого не делают. Более того, когда я добавляю текст динамически при создании представления, в Eclipse у меня нет текста в кнопках. Тогда они имеют равную высоту. Кроме того, это также довольно удивительно, так как текст не очень длинный (даже если каждая кнопка имеет другой текст с немного другой длиной), и даже если первые две строки были меньше, текст также соответствовал бы их. Я действительно не понимаю, почему это не работает. – user2707175

Смежные вопросы