CoordinatorLayoutの中にAppBarLayout、ViewPagerの構造で、ViewPagerのページを切り替えるとAppBarLayoutへのドラッグが効かなくなることがあった。
AppBarLayoutはCollapsingToolbarLayoutを持っていて、CollapsingToolbarLayoutはImageViewやCustomViewなどを持っている。
ViewPagerはTabLayoutを使い、コンテンツはRecyclerViewでリストを表示している。
AppBarLayoutに独自のBehaviorをセットしていたが、そもそもonNestedScroll等のメソッドが呼ばれなくなっていてた。
ということでAppBarLayoutにセットしているBehaviorのコンストラクタでsetDragCallbackを使い、trueを返すと正しく動くようになった。
原因はわからないままで気持ち悪いけど、これで解決
public Behavior(Context context, AttributeSet attrs) {
super(context, attrs);
setDragCallback(new DragCallback() {
@Override
public boolean canDrag(@NonNull AppBarLayout appBarLayout) {
return true;
}
});
}