2013-11-29 2 views
0

У меня есть TableLayout внутри RelativeLayout с android:layout_centerInParent="true" как один из его атрибутов, но он не центрируется по вертикали.TableLayout не центрирован по вертикали

Вот мой XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/line_drawing_relativelayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <TableLayout 
     android:id="@+id/activity_linking_tl" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" > 

     <TableRow 
      android:id="@+id/table_row_1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="1dp" > 

      <com.xx.myview 
       android:id="@+id/id_1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

      <com.xx.myview 
       android:id="@+id/id_2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

     </TableRow> 
    </TableLayout> 

<ImageButton 
     android:id="@+id/line_drawing_b_restart" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:padding="22dp" 
     android:src="@drawable/ic_restart" > 
    </ImageButton> 

<!-- There are more views/widgets here --> 

</RelativeLayout> 

Как бы решить эту проблему?

ответ

0

Проблема заключалась в том, что у меня была android:layout_below="xxx", а также (по какой-то причине не показано в коде я отправил), который перегрузили центрирование я пытался достичь. Удаление этого разрешило это. На самом деле очевидно.

0

Вы уверены, что RelativeLayout занимает столько места, сколько вы думаете? Возможно, что TableLayout имеет центрирование, но RelativeLayout является обертыванием контента, поэтому он заканчивается центрированием, но в меньшем контейнере, чем вы ожидали. Мне трудно измерить, не увидев часть RelativeLayout XML.

Один из способов проверить макетов является использование developer option «показать макет границ»:

Developer options with "show layout bounds" enabled

Это даст вам лучшее представление о том, как ваши макеты строятся. Если вы используете более старый телефон без этой опции разработчика, я бы просто начал устанавливать плоские цвета для просмотра фоновых изображений (например, android:background="#F00").

+0

Я проверил, что «RealtiveLayout» заполняет весь экран по мере необходимости. Я добавлю весь файл. – RiThBo

0

Попробуйте установить родительский элемент RelativeLayout ширину и высоту для соответствия_parent.

и добавить к вашему TableLayout

android:layout_centerHorizontal="true" 
android:layout_centerVertical="true" 
+0

Спасибо за ответ, но это не помогло. Я добавлю весь файл макета. – RiThBo

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