Background
Suppose I have these elements in the activity:
- actionbar (actually a Toolbar)
- tabs (using TabLayout )
- ViewPager, with fragments.
- each fragment has ListVIew/RecyclerView.
I wish to have the same behavior as on many apps, that when scrolling, the action bar will hide or show.
A perfect example for it is how the Play Store scrolling works.
Something like this (but with ListView in the fragments of course) :
The problem
I've found the "Android-ObservableScrollView" library which shows how to do it for many types of scrolling views, but it doesn't handle the case of the new TabLayout usage (plus it has issues), as shown on newer samples, like cheesesquare.
On the new API of the design library (shown on the "cheesesquare" example) , it's more automatic so you don't need to create so much boilerplate for handling the scrolling and what to do with it.
Something like that:
<android.support.v4.widget.DrawerLayout
<android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.AppBarLayout>
<android.support.v7.widget.Toolbar
app:layout_scrollFlags="scroll|enterAlways"/>
<android.support.design.widget.TabLayout/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton/>
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView/>
</android.support.v4.widget.DrawerLayout>
This hirerchy promises that snackbars will be below the FABs, and that the action bar will automatically be animated (shown/hidden) based on the inner RecyclerView of the fragments.
Thing is, this seems to work only with RecyclerView, and not with ListView.
Since they are quite complex, it will be very hard to convert them to RecyclverViews.
The question
What would it take to make the above mechanism work for ListViews too?
Is there a way to do it? If so, how?
EDIT: sadly it seems that Google will not support this behavior for ListView, but only for RecyclerView and NestedScrollView (written about here).
So I've tried to use the "Android-ObservableScrollView" library, but it has a lot of scrolling issues, including fling issues.
Now I've decided to give Android-ParallaxHeaderViewPager . Can anyone please tell me how to make it work in the current scenario? Is it even possible?
EDIT: I've decided to convert to RecyclerView after all. However, all the samples I've tried show an issue: when stopping to scroll, the actionbar (and maybe even the FAB) can stay truncated, as opposed to the play store, where it will get animated to either being hidden/shown.
EDIT: It seems I need to use setExpanded when having IDLE for onScrollStateChanged . question is, how to decide when to expand and when to collapse.