androidandroid-bottomappbar

How can I set a listener that fires when a BottomAppBar hides/shows?


I have a BottomAppBar that hides and shows when a RecyclerView is scrolled via its attribute hideOnScroll.
I would like to change the FloatingActionButton alignment mode when the BottomAppBar hides or shows.

I have not found any listeners or functions on how to achieve this. Are there any and how can I achieve this?


Solution

  • I have not found a listener to work with.

    I achieved my wished behavior by overriding the BottomAppBar.Behavior class and its methods slideUp() and slideDown().

    In those methods I just change the BottomAppBars FAB alignment mode appropriately and thats it. Now just tell the BottomAppBar to use this new behavior class via its XML attribute app:layout_behavior="MyBottomAppBarBehavior".

    But I figured this is rather bad because it somewhat eats a lot of resources and wont show smoothly on lower-end or older devices. It also re-aligns the BottomAppBar's menu when you do it quickly.

    So I decided to just hide the FAB when the BottomAppBar is hidden and vice versa. I achieved this similarily by overriding the FloatingActionButton.Behavior class and do stuff in there. You can find good tutorials for this online.