Android:ListView隐藏布局下面的项目太多了

时间:2016-06-28 17:35:12

标签: android android-layout listview

我有这个FileBrowser布局。链接视图打开后,我以编程方式填充ListView。问题是:当列表视图中的项目太多时,也就是说,当滚动条有足够的项目出现时,下面包含两个按钮的LinearLayout将消失。

没有多少物品。包含两个按钮的LinearLayout应该是: enter image description here

太多物品。我滚动到底部,包含两个按钮的LinearLayout不存在: enter image description here

我的布局:

<LinearLayout
    android:id="@+id/baseContainer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:orientation="vertical">

    <TextView
        android:id="@+id/txtCurrentPath"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="@dimen/textSizeL"
        android:layout_gravity="center"
        android:text="/current/path/"/>

    <ListView
        android:id="@+id/filesListView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
    </ListView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom|center_horizontal"
        android:orientation="horizontal">

        <Button
            android:id="@+id/cancelBtn"
            style="@style/RexforetTheme.Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/icon_retour"
            android:text="@string/btn_cancel" />

        <Button
            android:id="@+id/selectBtn"
            style="@style/RexforetTheme.Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/icon_check"
            android:text="@string/btn_select" />
    </LinearLayout>
</LinearLayout>

2 个答案:

答案 0 :(得分:2)

ListView xml更改为以下

<ListView
    android:id="@+id/filesListView"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:orientation="vertical"
    android:layout_weight="1">
</ListView>

android:layout_height更改为0dp并添加android:layout_weight="1"将允许ListView增长以使用布局中的其余可用空间。

这意味着您的两个按钮将始终可见,并位于屏幕底部。

答案 1 :(得分:0)

根据这样的重量来划分它 它应该工作

<LinearLayout
     android:id="@+id/baseContainer"
     android:layout_width="wrap_content"
     android:layout_height="match_parent"
     android:padding="10dp"
     android:orientation="vertical">

<LinearLayout
    android:weight="4"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:padding="10dp"
    android:orientation="vertical">


<TextView
    android:id="@+id/txtCurrentPath"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="@dimen/textSizeL"
    android:layout_gravity="center"
    android:text="/current/path/"/>

<ListView
    android:id="@+id/filesListView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">
</ListView>

<LinearLayout
    android:weight="1"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:gravity="bottom|center_horizontal"
    android:orientation="horizontal">

    <Button
        android:id="@+id/cancelBtn"
        style="@style/RexforetTheme.Button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/icon_retour"
        android:text="@string/btn_cancel" />

    <Button
        android:id="@+id/selectBtn"
        style="@style/RexforetTheme.Button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/icon_check"
        android:text="@string/btn_select" />
</LinearLayout>