如何设置表格布局底部到屏幕的中心?

时间:2015-04-20 17:44:18

标签: android layout

很新的android。我目前在我的第二个活动中有一个相对布局,顶部有一个表格布局,下面是一个列表。我希望屏幕的上半部分用TableLayout填充,而下半部分用ListView填充。

我的问题是我不知道如何对齐它们以使它们适合不同的屏幕尺寸。我正在动态添加行和放大器表视图的列,所以我想确保信息适合其容器。我知道有“dp”方法,但我不觉得硬编码是最好的答案。

这是我的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context="hss.quickpool.PoolSheet">

<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:stretchColumns="*"
    android:shrinkColumns="*"
    android:id="@+id/tlPool">
 </TableLayout>

<ListView
    android:layout_width="wrap_content"
    android:layout_height="170dp"
    android:id="@+id/lvBouts"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />
</RelativeLayout>

我如何确保这两个家伙不会相互搭接?

2 个答案:

答案 0 :(得分:1)

添加

android:layout_alignParentTop="true"

TableLayout

android:layout_below="@+id/tlPool"

ListView

应该这样做。

答案 1 :(得分:1)

对于这种类型的布局,你应该使用线性布局而不是相对布局,并使用权重来确保它们占据屏幕的一半

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"          
android:layout_width="match_parent"
android:layout_height="match_parent"    
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" 
android:orientation = "vertical"
tools:context="hss.quickpool.PoolSheet">

<TableLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight = "1"
android:stretchColumns="*"
android:shrinkColumns="*"
android:id="@+id/tlPool">
</TableLayout>

<ListView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight = "1"
android:id="@+id/lvBouts" />
</LineaserLayout>