Как увеличить высоту строки таблицы в соответствии с экранами? - PullRequest
11 голосов
/ 23 апреля 2011

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

<ScrollView android:id="@+id/ScrollView01" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  xmlns:android="http://schemas.android.com/apk/res/android">     

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"

    android:layout_height="fill_parent" android:background="@color/black_background">

<TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent"
    >
  <TableRow    android:id="@+id/TableRow01" 
               android:layout_width="fill_parent" 
               android:layout_height="wrap_content" >


  <TextView  android:id="@+id/name"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:textSize="20sp"
             android:textColor="@color/white" 
             android:visibility="visible" 
             android:text="@string/Name" 
             android:layout_weight="0.2"
             android:layout_marginLeft="20dp" 
             android:layout_marginTop="22dp"/>

 <EditText   android:id="@+id/myName"
             android:layout_width="120dip"
             android:layout_height="wrap_content"
             android:textSize="20sp"
             android:visibility="visible" 
             android:layout_weight="0.3"
             android:inputType="number" 
             android:textColor="@color/black_background" 
             android:layout_marginLeft="10dp" 
             android:layout_marginTop="10dp"/>

 <TextView   android:id="@+id/error1"
              android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:textSize="18sp"
             android:textColor="@color/red" 
             android:visibility="visible" 
             android:layout_weight="0.5"/>

  </TableRow>
 <TableRow    android:id="@+id/TableRow02" 
               android:layout_width="fill_parent" 
              android:layout_height="wrap_content">


  <TextView  android:id="@+id/address"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:textSize="20sp"
             android:visibility="visible"
             android:textColor="@color/white" 
             android:text="@string/address" 
             android:layout_weight="0.2"
             android:layout_marginLeft="20dp" android:layout_marginTop="22dp"/>

 <EditText   android:id="@+id/address"
             android:layout_width="120dip"
             android:layout_height="wrap_content"
             android:textSize="20sp"
             android:visibility="visible" 
             android:inputType="number" 
             android:textColor="@color/black_background" 
             android:layout_weight="0.8"
             android:layout_marginLeft="10dp" android:layout_marginTop="10dp"/>

  </TableRow>
</TableLayout>           

    </LinearLayout>
 </ScrollView> 

Ответы [ 6 ]

22 голосов
/ 20 августа 2011

Использование

android:minHeight="60px"

Вкл. TableRow тег

<TableRow android:id="@+id/task1" android:layout_width="fill_parent"
          android:minHeight="60px" android:layout_height="wrap_content">
6 голосов
/ 11 июля 2011

Пожалуйста, пройдите по этой ссылке, я думаю, она вам поможет.http://developerlife.com/tutorials/?p=307

Обратите внимание, что дочерние элементы TableLayout не могут указать свою ширину, которая всегда равна FILL_PARENT.Однако высота может быть определена дочерним элементом, который по умолчанию равен WRAP_CONTENT.Если ребенок TableRow, то рост всегда WRAP_CONTENT.

Поэтому, если вы используете TableLayout с TableRows, вы не сможете установить ширину / высоту (width=FILL_PARENT и height=WRAP_CONTENT).

Кстати, TableRow - это просто подкласс LinearLayout.Что вы можете сделать, это указать поведение столбца для сжатия и / или растяжения или нет.Вы также можете скрыть столбец, вызвав setColumnCollapsed для TableLayout и передав ему индекс столбца.Все индексы столбцов начинаются с 0, и вы можете иметь пустые столбцы.

4 голосов
/ 28 июля 2011

Вы можете просто использовать Android: layout_weight.Например, в приведенном ниже коде левая кнопка в два раза больше правой кнопки:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent">
    <Button android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1"
            android:text="hai" />
    <Button android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="2"
            android:text="longer sentence" />
</LinearLayout>
3 голосов
/ 03 марта 2014

Добавьте следующие свойства ко всем вашим TableRow s:

android:layout_height = "0dp"
android:layout_weight = "1"

Он растягивает все ваши TableRow s, чтобы занять всю родительскую высоту.

1 голос
/ 11 мая 2013

Вы можете установить android:layout_weight каждого TableRow на 1. Затем измените высоту TableLayout, как вам нравится. У меня работает нормально!

android:layout_weight="1" 
0 голосов
/ 27 августа 2012

Вы можете применить android:layout_weight к TableRow и присвоить одинаковое значение всем строкам таблицы.Строки таблицы будут распределены в оставшемся пространстве линейного макета.

Убедитесь, что для атрибутов таблицы установлено значение TableLayout

android:layout_width="match_parent"
android:layout_height="match_parent"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...