我想知道如何增加表格行的高度,使其在较大的屏幕尺寸中看起来相称。目前,所有textview和edittexts(放置在表格行中)都显示在屏幕的左侧,而不是占据整个屏幕(仅在较大的屏幕尺寸中)。 这是我正在使用的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>
答案 0 :(得分:22)
使用
android:minHeight="60px"
在TableRow
代码
<TableRow android:id="@+id/task1" android:layout_width="fill_parent"
android:minHeight="60px" android:layout_height="wrap_content">
答案 1 :(得分:6)
请仔细阅读此链接,我认为它会帮助您。 http://developerlife.com/tutorials/?p=307
请注意TableLayout
的孩子不能指定他们的宽度 - 总是FILL_PARENT
。但是,高度可以由子项定义,默认为WRAP_CONTENT
。如果孩子是TableRow
,则身高始终为WRAP_CONTENT
。
因此,如果您将TableLayout
与TableRows
一起使用,则无法设置宽度/高度(width=FILL_PARENT
和height=WRAP_CONTENT
)。< / strong>
顺便说一下,TableRow只是LinearLayout的子类。您可以做的是指定要收缩和/或拉伸的列的行为。您还可以通过在TableLayout上调用setColumnCollapsed并将列索引传递给它来隐藏列。所有列索引都从0开始,你可以有空列。
答案 2 :(得分: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>
答案 3 :(得分:3)
将以下属性添加到您的所有TableRow
:
android:layout_height = "0dp"
android:layout_weight = "1"
它会拉伸所有TableRow
以占据整个父高度。
答案 4 :(得分:1)
您可以将每个android:layout_weight
的{{1}}设置为1.然后根据需要更改TableRow
的高度。它适用于我!
TableLayout
答案 5 :(得分:0)
您可以将android:layout_weight
应用于TableRow,并为所有表行赋予相同的值。表行将分布在线性布局的剩余空间中。
确保您已将以下属性设置为TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"