RelativeLayout 中的 ListView 填满整个高度
Posted
技术标签:
【中文标题】RelativeLayout 中的 ListView 填满整个高度【英文标题】:ListView in RelativeLayout fills the entire height 【发布时间】:2017-11-01 18:18:09 【问题描述】:我有一个主要的相对布局,其中有一个 ListView 和另一个我想放置在屏幕底部的 Horizontal 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 应该滑动整个页面吗?
CoordinatorLayout 中的 RelativeLayout 不滚动