본문 바로가기

나의 플랫폼/안드로이드

[Android] AppbarLayout 과 RecyclerView ChildView

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

AppbarLayout과 RecycerView만 연동을 할 때는 스크롤이 문제 없이 잘 된다.


하지만, 혹시 RecyclerView안에 RecyclerView를 넣을 경우


RecyclerView 안에 있는 RecyclerView를 스크롤 하면 AppbarLayout이 움직이지 않는 현상이 발생 하기도 합니다.


이럴 경우, Child RecyclerView의 Scroll를 막아주면 됩니다.


방법은 두가지가 있습니다.


1. setNestedScrollingEnabled 함수에 false 값을 넘깁니다.

mRecycleView.setNestedScrollingEnabled(false);


2. LayoutManager를 커스터마이징 합니다.


public class CustomLinearLayoutManager extends LinearLayoutManager {
public CustomLinearLayoutManager(Context context, int orientation, boolean reverseLayout) {
    super(context, orientation, reverseLayout);

}

// it will always pass false to RecyclerView when calling "canScrollVertically()" method.
@Override
public boolean canScrollVertically() {
    return false;
}
}

Then instantiate it like this for vertical scrolling

CustomLinearLayoutManager customLayoutManager = new CustomLinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false);

Finally set the custom layout as layout manager of recycler view

recyclerView.setLayoutManager(customLayoutManager);

http://stackoverflow.com/a/32251203/3534559


참고하세요.