很新的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>
我如何确保这两个家伙不会相互搭接?
答案 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>