Fix bottom bar in CoordinatorLayout
Try this layout :
<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout 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:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/container"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/bottom_navigation" android:layout_alignParentTop="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_width="match_parent" android:layout_margin="10dp" android:layout_height="110dp" android:padding="15dp" card_view:cardElevation="2dp" card_view:cardCornerRadius="4dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Test" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view1" android:layout_width="match_parent" android:layout_margin="10dp" android:layout_height="110dp" android:padding="15dp" card_view:cardElevation="2dp" card_view:cardCornerRadius="4dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Test" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view3" android:layout_width="match_parent" android:layout_margin="10dp" android:layout_height="110dp" android:padding="15dp" card_view:cardElevation="2dp" card_view:cardCornerRadius="4dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Test" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view4" android:layout_width="match_parent" android:layout_margin="10dp" android:layout_height="110dp" android:padding="15dp" card_view:cardElevation="2dp" card_view:cardCornerRadius="4dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Test" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view5" android:layout_width="match_parent" android:layout_margin="10dp" android:layout_height="110dp" android:padding="15dp" card_view:cardElevation="2dp" card_view:cardCornerRadius="4dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Test" /> </android.support.v7.widget.CardView> </LinearLayout> </ScrollView> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="bottom" android:gravity="bottom"> <android.support.design.widget.BottomNavigationView android:layout_width="match_parent" android:layout_height="56dp" android:layout_weight="1" android:foregroundGravity="bottom" android:background="@color/green" app:itemIconTint="@color/white" app:itemTextColor="@color/white" android:id="@+id/bottomnav" app:menu="@menu/main"> </android.support.design.widget.BottomNavigationView> </RelativeLayout></android.support.design.widget.CoordinatorLayout>
The best possible solution will be making this kind of hierarchy
<ConstraintLayout> <CoordinatorLayout> <AppBarLayout> <ToolBar> <TabLayout> </AppBarLayout> <Inlude> Put the Main Content here. </Include> </CoordinatorLayout> Other Widgets that you want to be placed at a fixed position.</ConstraintLayout>
Don't forget to add
app:layout_behavior="@string/appbar_scrolling_view_behavior"
the above line into your included layout parent ViewGroup
Let's have an example of the approach that I am talking about
<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent" android:layout_height="match_parent"> <androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintBottom_toTopOf="@id/container" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:context=".activity.Dashboard"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay" app:elevation="0dp" app:layout_constraintBottom_toTopOf="@+id/container" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/background" android:elevation="0dp" app:layout_scrollFlags="scroll|enterAlways|snap" app:popupTheme="@style/AppTheme.PopupOverlay" app:titleTextColor="#000000" /> <com.google.android.material.tabs.TabLayout android:id="@+id/tabLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" app:tabBackground="@color/background" app:tabIndicatorColor="@color/colorAccent" app:tabMode="scrollable" app:tabSelectedTextColor="@color/black" app:tabTextColor="@color/black" /> </com.google.android.material.appbar.AppBarLayout> <include android:id="@+id/include" layout="@layout/content_main" /> </androidx.coordinatorlayout.widget.CoordinatorLayout> <RelativeLayout android:id="@+id/btSend" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="@dimen/_50sdp" android:visibility="gone" app:layout_constraintBottom_toTopOf="@id/container" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/btReceive"> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/fbSend" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/_30sdp" android:background="@color/colorAccent" android:src="@drawable/ic_upload" app:rippleColor="@color/colorAccent" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@id/fbSend" android:layout_alignRight="@id/fbSend" android:layout_alignBottom="@id/fbSend" android:layout_marginBottom="@dimen/_3sdp" android:elevation="@dimen/_10sdp" android:gravity="center" android:text="SEND" android:textColor="@color/white" android:textSize="@dimen/_8sdp" /> </RelativeLayout> <RelativeLayout android:id="@+id/btReceive" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/_50sdp" android:visibility="gone" app:layout_constraintBottom_toTopOf="@id/container" app:layout_constraintEnd_toStartOf="@+id/btSend" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent"> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/fbReceive" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/_30sdp" android:background="@color/colorAccent" android:src="@drawable/ic_download" app:rippleColor="@color/colorAccent" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@id/fbReceive" android:layout_alignRight="@id/fbReceive" android:layout_alignBottom="@id/fbReceive" android:layout_marginBottom="@dimen/_3sdp" android:elevation="@dimen/_10sdp" android:gravity="center" android:text="RECEIVE" android:textColor="@color/white" android:textSize="@dimen/_8sdp" /> </RelativeLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/_7sdp" android:background="@drawable/bottom_bar_corner" android:padding="@dimen/_5sdp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"> <Button android:layout_width="@dimen/_24sdp" android:layout_height="@dimen/_24sdp" android:background="@drawable/ic_upload_download" android:minHeight="0dp" android:paddingTop="@dimen/_6sdp" android:paddingBottom="@dimen/_6sdp" android:textSize="@dimen/_13sdp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout></androidx.constraintlayout.widget.ConstraintLayout>
So far so good. Let's have a look at the result
try this
<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout 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/container" android:layout_width="match_parent" android:layout_height="match_parent"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/bottom_navigation" android:layout_alignParentTop="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="50dp" android:padding="15dp" app:cardBackgroundColor="@color/red" app:cardCornerRadius="4dp" app:cardElevation="2dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Nilesh Rathod" android:textColor="#ffFFff" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="50dp" android:padding="15dp" app:cardBackgroundColor="@color/colorPrimary" app:cardCornerRadius="4dp" app:cardElevation="2dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Nilesh Rathod" android:textColor="#ffFFff" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="50dp" android:padding="15dp" app:cardBackgroundColor="@color/red" app:cardCornerRadius="4dp" app:cardElevation="2dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Nilesh Rathod" android:textColor="#ffFFff" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="50dp" android:padding="15dp" app:cardBackgroundColor="@color/colorPrimary" app:cardCornerRadius="4dp" app:cardElevation="2dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Nilesh Rathod" android:textColor="#ffFFff" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="50dp" android:padding="15dp" app:cardBackgroundColor="@color/red" app:cardCornerRadius="4dp" app:cardElevation="2dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Nilesh Rathod" android:textColor="#ffFFff" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="50dp" android:padding="15dp" app:cardBackgroundColor="@color/colorPrimary" app:cardCornerRadius="4dp" app:cardElevation="2dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Nilesh Rathod" android:textColor="#ffFFff" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="50dp" android:padding="15dp" app:cardBackgroundColor="@color/red" app:cardCornerRadius="4dp" app:cardElevation="2dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Nilesh Rathod" android:textColor="#ffFFff" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="50dp" android:padding="15dp" app:cardBackgroundColor="@color/colorPrimary" app:cardCornerRadius="4dp" app:cardElevation="2dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Nilesh Rathod" android:textColor="#ffFFff" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="50dp" android:padding="15dp" app:cardBackgroundColor="@color/red" app:cardCornerRadius="4dp" app:cardElevation="2dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Nilesh Rathod" android:textColor="#ffFFff" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="50dp" android:padding="15dp" app:cardBackgroundColor="@color/colorPrimary" app:cardCornerRadius="4dp" app:cardElevation="2dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Nilesh Rathod" android:textColor="#ffFFff" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="50dp" android:padding="15dp" app:cardBackgroundColor="@color/red" app:cardCornerRadius="4dp" app:cardElevation="2dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Nilesh Rathod" android:textColor="#ffFFff" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="50dp" android:padding="15dp" app:cardBackgroundColor="@color/colorPrimary" app:cardCornerRadius="4dp" app:cardElevation="2dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Nilesh Rathod" android:textColor="#ffFFff" /> </android.support.v7.widget.CardView> </LinearLayout> </ScrollView> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="bottom" android:gravity="bottom"> <android.support.design.widget.BottomNavigationView android:id="@+id/bottomnav" android:layout_width="match_parent" android:layout_height="56dp" android:layout_weight="1" android:background="@color/green" android:foregroundGravity="bottom" app:itemIconTint="@color/lightWhite" app:itemTextColor="@color/lightWhite" app:menu="@menu/menu"/> </RelativeLayout></android.support.design.widget.CoordinatorLayout>
Result