2015-07-12 5 views
0

У меня есть макет таблицы внутри линейного макета после раздувания 3 кнопки в строке таблицы последняя кнопка выключается экран Я имею в виду, что 3 кнопки не соответствуют ширине экрана Что мне делать?Android: кнопки уходят с края экрана

здесь код

<TableLayout 
    android:id="@+id/buttonTableLayout" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:stretchColumns="0,1,2" 
    android:layout_weight="1"> 

    <TableRow 
     android:id="@+id/tableRow0" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </TableRow> 

</TableLayout> 

ответ

0

TableRow не проверяет его содержимое по размеру экрана. Я думаю, что ваши Кнопки занимают все пространство, и поэтому последние кнопки находятся за пределами экрана.

Я могу думать 2 решения этой проблемы:

  • Используйте LinearLayout с весами для каждой кнопки:

    <LinearLayout 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:orientation="horizontal"> 
    
         <Button 
          android:layout_width="0dp" 
          android:layout_height="wrap_content" 
          android:layout_margin="8dp" 
          android:layout_weight="1.0" /> 
    
         <Button 
          android:layout_width="0dp" 
          android:layout_height="wrap_content" 
          android:layout_margin="8dp" 
          android:layout_weight="1.0" /> 
    
    </LinearLayout> 
    

    Вы можете сделать это программно тоже конечно. Подробнее о весах можно найти здесь: https://developer.android.com/guide/topics/ui/layout/linear.html

  • Использовать раскладку. Он автоматически проверяет, подходят ли ваши представления в текущей строке и помещает их в следующий, если места недостаточно. Хорошая библиотека с открытым исходным кодом, я сам использую этот один: https://github.com/ApmeM/android-flowlayout

+0

Аналитический что я использую Layout INFLATOR службы, и я не могу добавить кнопки, как вы сказали и текст кнопок являются diffrent (в длину) каждый раз, когда я запускаю приложение (я выбираю какой-то случайный текст из строкового массива) - вроде викторины – Nima

+0

Как я уже сказал, вы также можете сделать это программно. См. Этот вопрос: http://stackoverflow.com/questions/3224193/set-the-layout-weight-of-a-textview-programmatically – rubengees

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