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