如何在listview上方显示FloatingActionButton?

时间:2015-08-17 14:28:50

标签: android listview

我想在listview上方显示FloatingActionButton。我在activity_main.xml中使用此代码:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/drawer_layout"
    tools:context=".MainActivity">



    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/main_content"
        android:orientation="vertical"
        >
        <android.support.v7.widget.Toolbar
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/colorPrimary"
            android:id="@+id/app_bar"
            app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"

            />
        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_margin="16dp"
            android:src="@drawable/ic_refresh"
            />






        <!-- List view goes here-->

        <ListView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:divider="@color/list_divider"
            android:dividerHeight="1dp"
            android:focusable="false"
            android:listSelector="@drawable/list_row_selector"
            android:id="@+id/listView"></ListView>


    </LinearLayout>




    <android.support.design.widget.NavigationView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/main_drawer"
        android:layout_gravity="start"
        app:menu="@menu/menu_drawer"
        app:itemIconTint="@color/colorAccent"
        app:itemTextColor="@color/colorTextSecondary"
        >

    </android.support.design.widget.NavigationView>




</android.support.v4.widget.DrawerLayout>

看起来像: enter image description here

我希望它显示在列表视图的顶部,直到完全加载列表视图。 另外,如何获得旋转刷新图标?请帮我解决这个问题。

3 个答案:

答案 0 :(得分:0)

一个简单的解决方案是将ListView和FloatingActionButton分组到RelativeLayout中。

更好的解决方案是将其父布局(在您的情况下为LinearLayout)更改为RelativeLayout。但是,您需要在子项中使用layout_alignParentTop layout_abovelayout_below的组合来实现您想要的顺序。

答案 1 :(得分:0)

使用RelativeLayout而不是LinearLayout在ListView上方显示fab。

这是一个很棒的库,包含许多功能和动画,包括旋转:

https://github.com/shell-software/fab

答案 2 :(得分:0)

尝试在列表下方插入填充(我认为是您的recyclerview)。填充的高度必须与fab图标的高度相同。 在Flutter中,此解决方案非常有效。.