Bottom App Bar for Android - A Material Design Component
Similar to an App Bar (Top App Bar or Toolbar), Google introduced the Bottom App Bar as part of the Material Design Components back in 2018.
Let's get into the implementation by adding a dependency to the
build.gradle file.implementation "com.google.android.material:material:1.2.0-alpha03"
In the next step, let's add the
BottomAppBar and the FloatingActionButton to the activity layout.<com.google.android.material.bottomappbar.BottomAppBar
android:id="@+id/bottomAppBar"
style="@style/Widget.MaterialComponents.BottomAppBar.PrimarySurface"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:hideOnScroll="true"
app:fabAnimationMode="slide"
app:menu="@menu/menu_main"
app:navigationIcon="@drawable/ic_menu_white" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/createFab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_anchor="@+id/bottomAppBar"
app:srcCompat="@drawable/ic_create_white" />
That's it, you can see the Bottom App Bar in the preview with the Floating Action Button hovering over the cradle.
There are a few tags and points to be remembered before we continue the implementation.
Never use a Bottom App Bar with one action like shown in the above case. Keep the action count between two to five similar to Bottom Navigation View.
Don't use
background attribute to change the background color of the Bottom App Bar, use backgroundTint as the earlier is ineffective.layout_anchor tag is used to anchor the Floating Action Button with the Bottom App Bar.fabAlignmentMode has center and end attributes. By default, the value is set as the center and this value decides whether the floating action button is shown at the center or end.navigationIcon - This sets the navigation icon for the Bottom App Bar. You can use any icon other than the back icon as a back icon can only be added to the Top App Bar (or Toolbar).app:hideOnScroll hides the Bottom App Bar when the list items on the screen are scrolled.Furthermore, the Cradle under the Bottom App Bar and the position of the Floating Action Button can be controlled using
app:fabCradleMargin, app:fabCradleRoundedCornerRadius and app:fabCradleVerticalOff.This finishes the integration of the Bottom App Bar in the application. In the next week's article, we will take a look at adding click listeners to the menu items and show a navigation drawer when the navigation menu is clicked.


