2015-04-09 4 views
-1

У меня есть TableLayout с несколькими строками. Строки могут содержать 2 или 3 элемента.layout_width в строке таблицы

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

<TableRow 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:weightSum="2"> 

    <TextView 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:text="@string/spielfortsetzung" /> 

    <TextView 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:text="@string/loesung" /> 

</TableRow> 

<TableRow 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent"> 

    <TextView 
     android:id="@+id/tv3" 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:layout_weight="1" /> 

    <ListView 
     android:id="@+id/list1" 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:scrollbars="none" /> 

    <ImageView 
     android:id="@+id/img1" 
     android:layout_width="25dp" 
     android:layout_height="25dp" /> 
</TableRow> 
</TableLayout> 

В Android Studio макеты выглядят корректно, но не на моем устройстве, когда я запускаю приложение. Там все макеты имеют минимальное пространство для 1-2 символов. Также он не использует всю ширину, но оставляет поле слева.

ответ

0

Спасибо всем. Я согласен, что с весом = «0,5» это делается лучше.

Моя проблема, однако, была чем-то другим. Я загружаю этот макет в Фрагмент. Это только часть динамического интерфейса, поэтому полный экран не заполняется этим макетом. Я использовал null для родительского контейнера, но я не использую контейнер ViewGroup, который я получаю как параметр, и отправляю false для attachToParent, иначе мое приложение потерпит крах.

0

Попробуйте это,

<TableRow 
android:layout_height="wrap_content" 
android:layout_width="match_parent"> 

<TextView 
    android:layout_height="wrap_content" 
    android:layout_width="0dp" 
    android:layout_weight="0.5" 
    android:text="@string/spielfortsetzung" /> 

<TextView 
    android:layout_height="wrap_content" 
    android:layout_width="0dp" 
    android:layout_weight="0.5" 
    android:text="@string/loesung" /> 

// же к другим строкам, определяют вес, как часть.

0

Глядя на XML, первый столбец, вероятно, отображается правильно, второй на вас забыл weightSum для TableRow, и все две строки запрашивают вес 1. Добавьте weightSum = 2 во вторую строку, чтобы решить вашу проблему ,

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