RelativeLayout 中的 ListView 填满整个高度

Posted

技术标签:

【中文标题】RelativeLayout 中的 ListView 填满整个高度【英文标题】:ListView in RelativeLayout fills the entire height 【发布时间】:2017-11-01 18:18:09 【问题描述】:

我有一个主要的相对布局,其中有一个 ListView 和另一个我想放置在屏幕底部的 Horizo​​ntal LinearLayout。 当列表视图中的项目填满屏幕时,它会隐藏在水平线性布局下。 如何限制 ListView 仅在水平线性布局之前占用空间并停止隐藏列表视图的内容。

感谢您的帮助和建议。

这是我的布局和外观的屏幕截图。

    <?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/activity_chat_window"
    android:layout_
    android:layout_
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.raoburugula.speech_soft_ivr.ChatWindow">
            <ListView
                android:id="@+id/lvMessages"
                android:layout_
                android:layout_
                android:divider="@android:color/transparent"
                android:dividerHeight="5dp"
                />

    <LinearLayout
        android:id="@+id/llAction"
        android:layout_
        android:layout_
        android:orientation="horizontal"
        android:layout_alignParentBottom="true"
        android:weightSum="5"
        android:visibility="invisible">
        <EditText
            android:id="@+id/etMessage"
            android:layout_
            android:layout_
            android:layout_weight="4"/>

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/btnSendMessage"
            android:layout_
            android:layout_
            android:layout_weight="1"
            android:src="@drawable/ic_send"
            android:tint="@android:color/white"
            android:onClick="sendMessage"
             />
    </LinearLayout>
</RelativeLayout>

【问题讨论】:

【参考方案1】:

我会从 LinearLayout 中删除 android:visibility="invisible" 行。并检查它是如何工作的。我也有一次从下往上构建我的布局,允许我在屏幕底部放置 2 个按钮,事后看来我可能不需要。我无法对您的帖子发表评论,因此我将其作为答案。

您是否也尝试过使用普通按钮代替 FAB(FloatingActionButton)? FAB 可能具有使其可见且位于右下角的属性,而不管其父属性如何

【讨论】:

我需要 Visibility 属性,因为我正在控制它,而这个问题与我认为的无关。以及 FAB 对此有何影响。这与相对布局以及如何在其中放置小部件有关。 很抱歉我误读了它,因为线性布局没有显示出来,这个人问了一个类似的问题,他们建议在根布局中为按钮和列表视图创建一个布局***.com/questions/11403212/…跨度> 因此,将 ListView 包装在 RelativeLayout 中,并使该布局与父级的顶部以及包含您的 EditText 和 Button 的 LinearLayout 的顶部对齐【参考方案2】:

您使水平线性布局对齐父级的底部,是的;

而且你必须让你的 listView 在水平线性布局之上。

【讨论】:

以上是关于RelativeLayout 中的 ListView 填满整个高度的主要内容,如果未能解决你的问题,请参考以下文章

LinearLayout 中的 ViewPager ListView。滑动 ViewPager 应该滑动整个页面吗?

java 为listvie实现基础适配器

CoordinatorLayout 中的 RelativeLayout 不滚动

如何在RelativeLayout中的视图之间添加空间

RelativeLayout 中的 ImageView 与父级不匹配

如何在RelativeLayout中的其他布局之间放置布局?