如何在所有活动中显示FAB

时间:2017-05-19 01:50:53

标签: android xml floating-action-button

在我的activity_navigation.xml我将FAB放在这里。 如下:

<android.support.v4.widget.DrawerLayout 
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"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/content_frame">

    <com.github.clans.fab.FloatingActionMenu
        android:id="@+id/menu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        fab:menu_icon="@drawable/quick_apply"
        android:layout_gravity="bottom|right"
        android:layout_marginBottom="8dp"
        android:layout_marginRight="8dp">

        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/view_img"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/imgicon"
            fab:fab_size="mini"
            fab:fab_label="View Images" />

        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/camera"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/camicon"
            fab:fab_size="mini"
            fab:fab_label="Camera" />

    </com.github.clans.fab.FloatingActionMenu>

</FrameLayout>

<android.support.design.widget.NavigationView
    android:id="@+id/navigationView"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:menu="@menu/activity_navigation_drawer"
    android:background="@color/tableHeader"/>

我在xml上设置了此NavigationActivity,这将与我的BaseActivity一样,然后将其扩展到我的其他Activities

运行应用程序时我的问题FAB没有显示,因为它已被我分配给content_frame的xml覆盖。但是,如果我将com.github.clans.fab.FloatingActionMenu放在我activities's xml中的其他Home Screen中,它会显示它,但我想知道如何在不重复FAB的情况下显示xml添加到我的FABNavigationActivity的所有操作都将其放在FrameLayout上。

感谢您的帮助。

更新 顺便说一下,我使用名为content_frame的{​​{1}}到我的其他activities来显示我xmlActivity的{​​{1}}像这样

Home Screen

3 个答案:

答案 0 :(得分:0)

//我没有你的资源值,所以我尝试制作一个测试示例,用textview替换你的抽屉视图。如果我将framelayout高度与匹配父项一起放置,我只看到一个textview,只有当我把高度设置为20dp时,它才会出现两个textview。

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent">

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="20dp"
            android:id="@+id/content_frame">

            <TextView
                android:text="text above"
                android:textSize="20sp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

        </FrameLayout>


        <TextView
            android:text="text below"
            android:textSize="20sp"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" />

    </LinearLayout>

答案 1 :(得分:0)

我做的是在FrameLayout

中创建两个activity_navigation.xml
 <FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

<com.github.clans.fab.FloatingActionMenu
    android:id="@+id/menu"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    fab:menu_icon="@drawable/quick_apply"
    android:layout_gravity="bottom|right"
    android:layout_marginBottom="8dp"
    android:layout_marginRight="8dp">

    <com.github.clans.fab.FloatingActionButton
        android:id="@+id/view_img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/imgicon"
        fab:fab_size="mini"
        fab:fab_label="View Images" />

    <com.github.clans.fab.FloatingActionButton
        android:id="@+id/camera"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/camicon"
        fab:fab_size="mini"
        fab:fab_label="Camera" />

</com.github.clans.fab.FloatingActionMenu>

</FrameLayout>

我的FAB不在content_frame内,因此不会重叠。

答案 2 :(得分:0)

使用Fragment instant of Activity