ListViews 覆盖了下面的一切

Posted

技术标签:

【中文标题】ListViews 覆盖了下面的一切【英文标题】:ListViews covers up everything underneath 【发布时间】:2015-12-21 01:05:34 【问题描述】:

我在我的应用程序中使用 Listview,当 listview 加载数据时,它会覆盖屏幕上的所有内容。我已经尝试了一切,但可能我只是错过了一些东西。这是我的代码

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_
android:layout_
android:id="@+id/friendtilefragment">
<Button
   android:layout_
   android:layout_
   android:text="Hello"
   android:layout_alignTop="@+id/list"/>
<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/swipe_refresh_layout"
    android:layout_
    android:layout_>
<ListView
android:id="@+id/list"
android:layout_
android:layout_
android:divider="@color/list_divider"
android:layout_marginTop="45dp"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_row_selector" />

</android.support.v4.widget.SwipeRefreshLayout>
</FrameLayout>

在此布局中,我使用 Button 来显示片段。但是当数据加载到列表视图中时,该按钮位于列表视图下方。

【问题讨论】:

【参考方案1】:

您确定要使用FrameLayout?,它应该用于保存单个子视图。其中的子视图被绘制在一个堆栈中,最近添加的子视图在顶部,并且像layout_alignTop 这样的相对约束在FrameLayout 中不起作用。

改用RelativeLayout,并将SwipeRefreshLayout 放在按钮下方。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_
    android:layout_
    android:id="@+id/friendtilefragment">
    <Button
        android:id="@+id/myButton"
        android:layout_
        android:layout_
        android:text="Hello"/>
    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swipe_refresh_layout"
        android:layout_below="@+id/myButton"
        android:layout_
        android:layout_>
        <ListView
            android:id="@+id/list"
            android:layout_
            android:layout_
            android:divider="@color/list_divider"
            android:layout_marginTop="45dp"
            android:dividerHeight="1dp"
            android:listSelector="@drawable/list_row_selector"/>
    </android.support.v4.widget.SwipeRefreshLayout>
</RelativeLayout>

【讨论】:

我正在使用片段,所以如果我删除 FrameLayout 它将无法工作..你说什么?【参考方案2】:

您的问题的答案在这里:Limit height of ListView on Android 你最好为列表视图和它下面的内容使用单独的布局。

【讨论】:

以上是关于ListViews 覆盖了下面的一切的主要内容,如果未能解决你的问题,请参考以下文章

通过自定义listView同时选择和搜索不起作用

ListView Flutter 中的 ListViews

在 RecyclerView 内的 ListViews 中显示项目

Android:SQLite 和 ListViews

安卓。 notifyDataSetChanged() 方法和 ListViews 是如何工作的?

ScrollView 中的 ListViews 与我的 TextViews 重叠