I am trying to achieve an effect like WhatsApp has, where the Toolbar (when scrolled) will clip into view magnetlike, or out of view magnetlike.
What I have im my MainActivity XML:
- DrawerLayout - Base Layout
- CoordinatorLayout - Layout for the Appbar and Toolbar and Tabs
- AppBarLayout - For holding Toolbar and Tabs
- Toolbar - has THIS flag:
app:layout_scrollFlags="scroll|enterAlways"
- SlidingTabLayout - Displays tabs
- ViewPager - For tabs
- RecyclerView - For coordinatorlayout
Now dont get me wrong, it works, when I scroll down the toolbar gets pushed out of view but say I stop scrolling halfway, then the toolbar just sits there half hidden out of view and the other half in view..
How can I approach solving this problem, as I want it to either snap out of view or into view.
EDIT: as of support 23.1.0 this is no longer needed. See this answer instead.
One possible way to solve this is customizing the
Behavior
set to yourAppBarLayout
.Your
AppBarLayoutSnapBehavior
would change the default behavior ofAppBarLayout.Behavior
, by adding the snap logic when the scroll stops. Hopefully, the code below is self explanatory.The only thing is, the scroll view (in my case a
RecyclerView
) snaps along with theToolbar
. I actually like it this way, but I'm not sure that's what you want.This feature has been added in
23.1.0
version of android support library. From release notes:For more info: http://android-developers.blogspot.in/2015/10/android-support-library-231.html
I just hided action bar layout in main activity and set span for CollapsingToolbarLayout. it works for me.
in main activity
and layout_activity_main