2016-03-06 2 views
1

Я пытаюсь создать 4-х столбчатый дисплей, используя TableLayout. Я создал представления в столбцах WRAP_CONTENT для ширины макета. Затем я приведу некоторые тестовые значения, чтобы увидеть результаты. Вместо сокращения ширины экрана устройства он выходит за пределы устройства. Вот мой макет:WRAP_CONTENT не работает в TableLayout

<?xml version="1.0" encoding="utf-8"?> 
<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="wrap_content" 
     android:layout_height="match_parent"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:id="@+id/editText" 
      android:text="Player" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:id="@+id/editText2" 
      android:text="Player" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:id="@+id/editText3" 
      android:text="Player" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:id="@+id/editText4" 
      android:text="Player" /> 
    </TableRow> 

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

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:inputType="number" 
      android:ems="10" 
      android:id="@+id/editText5" 
      android:text="26" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:inputType="number" 
      android:ems="10" 
      android:id="@+id/editText6" 
      android:text="26" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:inputType="number" 
      android:ems="10" 
      android:id="@+id/editText7" 
      android:text="26" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:inputType="number" 
      android:ems="10" 
      android:id="@+id/editText8" 
      android:text="26" /> 
    </TableRow> 

</TableLayout> 

Это то, что я получаю. Показаны только около 1 с половиной из 4 столбцов. enter image description here

Это то, что я ожидаю. Единственный способ получить это - установить конкретные значения dp в ширину макета. enter image description here

Я просто хочу, чтобы 4 столбца заполнили доступную ширину экрана. Есть идеи?

ответ

2

Это из-за android:ems="10" в xml TextView атрибут.

попробовать с android:ems="5" или менее

ИЛИ

Вы можете достичь же с помощью

<TextView 
    android:layout_width="0dp" 
    android:layout_weight="0.25" 

всем TextView с. И добавление android:orientation="horizontal" к TableRow

Надеюсь, это поможет.

+0

Нижние эммы сделали трюк. Благодарю. Мне придется попробовать другой, чтобы увидеть разницу. – markbernard

+1

layout_weight дал мне лучшие результаты. благодаря – markbernard

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