본문 바로가기
Android

[안드로이드] ViewPager2의 setUserInputEnabled (사용자 입력 통제)

by Sky Titan 2020. 8. 23.
728x90
 

ViewPager2  |  Android 개발자  |  Android Developers

From class android.view.ViewGroup void addChildrenForAccessibility(ArrayList arg0) void addExtraDataToAccessibilityNodeInfo(AccessibilityNodeInfo arg0, String arg1, Bundle arg2) void addFocusables(ArrayList arg0, int arg1, int arg2) void addKeyboardNavigat

developer.android.com

 

메서드 파라미터 설명
setUserInputEnabled enabled true : 사용자 스크롤 허용 - 사용자 스크롤을 가능, 불가능하게 할 수 있습니다.

- 터치 입력과 접근성 입력을 포함합니다.

- 키보드 입력을 금지하는 것은 아직 지원하지 않습니다.

- 사용자 스크롤이 금지되어도, setCurrentItem을 이용한 프로그래밍 방식의 스크롤은 여전히 가능합니다.

- 기본값으로는 enable로 설정이 되어있습니다.
false : 사용자 스크롤 방지

 

AndroidX에 ViewPager2가 생긴 것도 몰랐었는데 setUserInputEnabled라고 해서 사용자의 터치 input을 컨트롤할 수 있는 메서드가 추가되었습니다.

이 기능이 유용한 이유는

 

 

 바로 저 BottomNavigationView를 사용할 때의 디자인 가이드라인 때문입니다. 보통 하단에 BottomNavigationView를 두게 되면 ViewPager에 Fragment들을 삽입하여서 네비게이팅을 하는데요, 이때 디자인 가이드라인에서는 사용자의 터치 스크롤로 인한 화면 변경을 금지하는 것을 추천하고 있습니다.

BottomNavigationView의 버튼들로만 화면 이동을 할 수 있게 하라는 것이지요.

 

 하지만 정작 기존 ViewPager에선 해당 기능을 따로 지원하지 않아서 ViewPager를 상속받는 클래스를 만들어서 Scroll을 강제로 막아야 했었는데 ViewPager2에선 그럴 필요 없이 공식 라이브러리에서 해당 기능을 지원하게 돼서 편하게 됐습니다.

728x90

댓글