I am trying to ads a fab to my fragment but it is hidden behind the navigation bar. The issue is that the appear layout is interested he activities and the scroll behavior is set to the frame layout to which I attach the fragment. How do I add this behavior to the recycler view in the fragment without having to add the toolbar to the fragment. This is because I have lots of fragments and just 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>
Daniel Nugent's right.you can do that like this:
Just put the FloatingActionButton
on that 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>
And then use that RecyclerView
inside that 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 wasn't sure about that CardView
because you set the 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" />
So, those card's shouldn't be there.(unless you need to show it as error cards
) by setting setVisibility
to GONE
and after that, handle if there was an error, show it by: setVisibility
== View.VISIBLE
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With