Android – floating operation button hidden behind the navigation drawer

I'm trying to advertise a fab to my clip, but it's hidden behind the navigation bar. The problem is that the layout that appears is interested in his activity, and the scrolling behavior is set to the frame layout of my attached clip. How to add this behavior to the collector view in the clip without adding the toolbar to the clip. This is because I have many clips and only one activity

Navigation_ drawer_ layout

<?xml version="1.0" encoding="utf-8"?>

<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"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="close">

    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/coordinatorLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/appBarLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fitsSystemWindows="true">

            <include
                android:id="@+id/toolbar"
                layout="@layout/toolbar" />
        </android.support.design.widget.AppBarLayout>


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

            app:layout_behavior="@string/appbar_scrolling_view_behavior" />
    </android.support.design.widget.CoordinatorLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:theme="@style/NavigationDrawerStyle"
        app:itemIconTint="@color/PrimaryPurple"
        app:menu="@menu/activity_dasboard_drawer" />


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

fragment_ layout

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/coordinatorLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/food_queue_recycle_list"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/title_white" />

        <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view_no_items"
            android:layout_width="350dp"
            android:layout_height="200dp"
            android:layout_centerInParent="true"
            android:visibility="gone"
            card_view:cardCornerRadius="2dp"
            card_view:cardElevation="4dp">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center">

                <ImageView
                    android:id="@+id/errorImageView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:contentDescription="@string/empty_favourite_list"
                    android:src="@drawable/food_icon_empty" />

                <TextView
                    android:id="@+id/errorTextView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/errorImageView"
                    android:layout_marginTop="@dimen/large_text_size"
                    android:gravity="center"
                    android:text="@string/empty_favourite_list"
                    android:textAllCaps="true"
                    android:textColor="@color/SecondaryBlack"
                    android:textSize="@dimen/medium_text_size"
                    android:textStyle="bold" />
            </RelativeLayout>
        </android.support.v7.widget.CardView>
    </RelativeLayout>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/action_edit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        android:src="@drawable/ic_mode_edit_48px"
        app:backgroundTint="@color/PrimaryPurple"
        app:layout_anchor="@id/food_queue_recycle_list"
        app:layout_anchorGravity="bottom|right|end"
        app:layout_behavior="helpers.FABCoordinatorBehavior" />
</android.support.design.widget.CoordinatorLayout>

resolvent:

Daniel Nugent is right. You can do this:

Just place the floatingactionbutton on the mainlayout, like this:

<?xml version="1.0" encoding="utf-8"?>
<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"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="close">

    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/coordinatorLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <FrameLayout
            android:id="@+id/content_frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />

        <android.support.design.widget.AppBarLayout
            android:id="@+id/appBarLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fitsSystemWindows="true">

            <include
                android:id="@+id/toolbar"
                layout="@layout/toolbar" />

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

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/action_edit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|end"
            android:layout_margin="@dimen/fab_margin"
            android:src="@drawable/ic_mode_edit_48px"
            app:backgroundTint="@color/PrimaryPurple"
            app:layout_anchor="@id/food_queue_recycle_list"
            app:layout_anchorGravity="bottom|right|end"
            app:layout_behavior="helpers.FABCoordinatorBehavior" />

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

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:theme="@style/NavigationDrawerStyle"
        app:itemIconTint="@color/PrimaryPurple"
        app:menu="@menu/activity_dasboard_drawer" />

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

Then use recyclerview in the fragment:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/coordinatorLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/food_queue_recycle_list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/title_white" />

    <!-- not sure about this, but, it shouldn't be here -->

    <!--<android.support.v7.widget.CardView
        android:id="@+id/card_view_no_items"
        android:layout_width="350dp"
        android:layout_height="200dp"
        android:layout_centerInParent="true"
        android:visibility="gone"
        card_view:cardCornerRadius="2dp"
        card_view:cardElevation="4dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center">

            <ImageView
                android:id="@+id/errorImageView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:contentDescription="@string/empty_favourite_list"
                android:src="@drawable/food_icon_empty" />

            <TextView
                android:id="@+id/errorTextView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/errorImageView"
                android:layout_marginTop="@dimen/large_text_size"
                android:gravity="center"
                android:text="@string/empty_favourite_list"
                android:textAllCaps="true"
                android:textColor="@color/SecondaryBlack"
                android:textSize="@dimen/medium_text_size"
                android:textStyle="bold" />
        </RelativeLayout>
    </android.support.v7.widget.CardView>-->

</RelativeLayout>

I'm not sure about the cardview because you set recyclerview to match_ parent:

<android.support.v7.widget.RecyclerView
        android:id="@+id/food_queue_recycle_list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/title_white" />

Therefore, those cards should not be there. (unless you need to display it as an error card) set setvisibility to go, and then process whether there is an error. It is displayed in the following way: setvisibility = = view. Visible

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>