【问题标题】:Android: ListView hiding layout below when too many itemsAndroid:当项目太多时ListView隐藏布局下方
【发布时间】:2016-06-28 17:35:12
【问题描述】:

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

物品不多。包含两个按钮的 LinearLayout 就在那里:

项目太多。我滚动到底部,不存在包含两个按钮的 LinearLayout:

我的布局:

<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>

【问题讨论】:

    标签: android android-layout listview


    【解决方案1】:

    将您的 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 增长以使用布局中剩余的可用空间。

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

    【讨论】:

    • 啊!我知道了。它有效,感谢您解释它的工作原理/原因。我会在 10 分钟后回来将您的答案标记为已接受。
    【解决方案2】:

    按照重量来分,像这样 它应该工作

    <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>
    

    【讨论】:

      猜你喜欢
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      • 2014-09-07
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多