如何根据屏幕大小增加表格行的高度?

14

我想知道如何增加表格行的高度,使它在更大的屏幕尺寸下看起来更协调。目前所有的textview和edittext(放置在表格行中)都出现在屏幕的左侧,而不是占据整个屏幕(仅适用于更大的屏幕尺寸)。 以下是我正在使用的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个回答

30

使用

android:minHeight="60px"

关于 TableRow 标签:
<TableRow android:id="@+id/task1" android:layout_width="fill_parent"
          android:minHeight="60px" android:layout_height="wrap_content">

7
请通过这个链接,我认为它会帮助你。 http://developerlife.com/tutorials/?p=307 请注意,TableLayout的子项不能指定宽度 - 宽度始终为FILL_PARENT。但是,子项的高度可以由其自身定义,默认为WRAP_CONTENT。如果子项是TableRow,则高度始终为WRAP_CONTENT。
因此,如果您使用TableLayout与TableRows,您实际上无法设置宽度/高度(width = FILL_PARENT,height = WRAP_CONTENT)。
顺便说一下,TableRow只是LinearLayout的一个子类。您可以指定列的收缩和/或拉伸行为,也可以通过在TableLayout上调用setColumnCollapsed并传递列索引来隐藏列。所有列索引从0开始,您可以有空列。

4
你可以使用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>

4
将以下属性添加到您所有的TableRow中:
android:layout_height = "0dp"
android:layout_weight = "1"

它会将所有的TableRow拉伸到占据整个父元素高度。

1
你可以将每个TableRowandroid:layout_weight设置为1。然后根据需要更改TableLayout的高度。这对我来说非常有效!
android:layout_weight="1" 

0

您可以在TableRow上应用android:layout_weight,并为所有表行赋予相等的值。表行将在线性布局的剩余空间中分布。

请确保您已经设置了以下TableLayout属性:

android:layout_width="match_parent"
android:layout_height="match_parent"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接