ListView高度填充屏幕

时间:2017-12-20 17:01:07

标签: android android-layout

我的布局看起来有点像这样

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<include android:id="@+id/tb_cntnr" layout="@layout/app_toolbar"/>

<TextView
    style="@style/item_label"
    android:layout_below="@+id/tb_cntnr"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/maint_label"
    android:text="@string/label_title"/>

<ListView
    android:id="@+id/actions"
    android:layout_below="@+id/maint_label"
    style="@style/Widget.AppCompat.ListView"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:clickable="false"
    tools:listitem="@layout/action_list_item"/>

<LinearLayout
    android:orientation="vertical"
    android:layout_alignParentBottom="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        style="@style/item_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/label_notes"/>

    <EditText
        android:id="@+id/notestext"
        style="@style/item_label"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/label_notes"/>
</LinearLayout>

我想要什么 1.工具栏设置在屏幕顶部(它是) 2.动作标题textview对齐顶部(它是) 3.音符部分(id-noteslayout)对齐屏幕底部 4.列表填写(2)和(3)之间的剩余区域

我有点无能为力

2 个答案:

答案 0 :(得分:0)

你需要做一个与使用alignBottom做的非常类似的事情。在这里,您必须使用android:layout_alignTop="@+id/id_of_linear_layout,以便它不会与其下方的内容重叠。您需要设置线性布局的ID,并将上面的代码替换为新的ID。

答案 1 :(得分:0)

因为您已将listview高度作为填充父级,所以它占据整个屏幕。如果你想让它在标题和笔记布局之间,你可以在listview中添加两个条件 - 在标题下方,在注释视图上方:android:layout_below =“@ id / maint_label”,android:layout_above =“@ id / notes_layout”