NestedScrollView 내에 RecyclerView를 넣어 좀 더 다양한 UI를 구현하려고 할 때 NestedScrollView와 RecyclerView의 Scrolling 방향이 동일 할 경우 발생하는 문제가 있다.
뭐 당연한 문제지만, 두개의 View 모두 Vertical scrolling이라고 할 때 ScrollView 영역에서는 스크롤이 자연스럽지만, RecyclerView에서는 부 자연스러운 동작을 보여준다.
그리고 SupportToolBar의 layoutScrollingFlag가 아래와 같을 때 RecyclerView영역에서는 정상동작 하지 않는 모습을 보여준다.
1 | app:layout_scrollFlags="scroll|enterAlways" | cs |
이런 경우 RecyclerView의 Scrolling을 막아야하는데 RecyclerView에 사용되는 LayoutManager를 커스텀하여 Scrolling을 막을 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | private static final class CustomLinearLayoutManager extends LinearLayoutManager{ private boolean isEnabledVerticalScrolling = false; public CustomLinearLayoutManager(Context context) { super(context); } public CustomLinearLayoutManager(Context context, int orientation, boolean reverseLayout) { super(context, orientation, reverseLayout); } public CustomLinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } public void setEnabledVerticalScrolling(boolean b){ isEnabledVerticalScrolling = b; } @Override public boolean canScrollVertically() { return isEnabledVerticalScrolling && super.canScrollVertically(); } } | cs |
'개발 > 안드로이드' 카테고리의 다른 글
안드로이드 IOIO - 개발자의 고장난 RC 자동차 장난감 살리기 #1 (0) | 2017.01.17 |
---|---|
FirebaseMessaging 적용, App Background 상태 이슈 (0) | 2017.01.09 |
AsyncTask 에 대하여 #2. 스케쥴링 ThreadPool (0) | 2016.12.05 |
AsyncTask 에 대하여 #1. 간단한 설명 (0) | 2016.12.05 |
Windows echo date 문자 정리 (0) | 2016.12.04 |