I followed this tutorial to implement the behaviors for both hiding the toolbar and the FAB when scrolled: https://mzgreen.github.io/2015/06/23/How-to-hideshow-Toolbar-when-
Hank Moody comment actually lead me to the correct answer - thanks Hank!
This is how I solved my problem:
Create a 'Scroll Through' recyclerview where the parent will receive all the scroll events of the child by doing this:
public class ScrollThroughRecyclerView extends RecyclerView {
public ScrollThroughRecyclerView(Context context) {
super(context);
}
public ScrollThroughRecyclerView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ScrollThroughRecyclerView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev){
//true - block scrolling of child and allow scrolling for parent recycler
return true;
}
}
Use this custom recyclerview in your xml or in your java code and the scroll events will be passed correctly to your parent recyclerview which will activate the app scrollbehavior.
if you want put one vertical recycler in another vertical you must set fixed height for child recycler view, or try to overwrite this method
@Override
public boolean dispatchTouchEvent(MotionEvent ev){
//false - block scrolling of parent recycler and allow scrolling for child
return false;
}
Have you tried using the following in the xml of the inner recyclerview?
app:layout_behavior="@string/appbar_scrolling_view_behavior"
EDIT: assuming you are using CoordinatorLayout.