간단한 프로젝트를 진행하면서 처음 activity에 tablayout과 Viewpager2를 같이 사용했다.
그리고 fragment에 광고를 넣기 위해 Viewpager2를 사용했다.
그러자 activity의 viewpager는 움직이지만 fragment의 viewpager는 움직이지 않는 문제가 발생했다.
https://developer.android.com/training/animation/vp2-migration#nested-scrollables
ViewPager에서 ViewPager2로 이전 | Android 개발자 | Android Developers
ViewPager에서 ViewPager2로 이전 ViewPager2는 ViewPager 라이브러리의 개선된 버전으로, 향상된 기능을 제공하며 ViewPager 사용 시 발생하는 일반적인 문제를 해결합니다. 앱에서 ViewPager를 이미 사용하고
developer.android.com
중첩된 스크롤 가능 요소 지원
스크롤 뷰와 이 스크롤 뷰를 포함하는 ViewPager2 객체의 방향이 같은 경우 ViewPager2는 기본적으로 중첩된 스크롤 뷰를 지원하지 않습니다. 예를 들어 세로 방향 ViewPager2 객체 내의 세로 스크롤 뷰에서는 스크롤이 작동하지 않습니다.
방향이 동일한 ViewPager2 객체 내의 스크롤 뷰를 지원하려면 중첩된 요소 스크롤이 예상되는 경우 ViewPager2 객체의 requestDisallowInterceptTouchEvent()를 호출해야 합니다. ViewPager2 중첩 스크롤 샘플은 다목적 맞춤 래퍼 레이아웃을 사용하여 이 문제를 해결하는 한 가지 방법을 보여줍니다.
해결방안

NestedScrollableHost 클래스를 만들고 아래 깃허브의 코드를 그대로 복붙하여 넣었다.
GitHub - android/views-widgets-samples: Multiple samples showing the best practices in views-widgets on Android.
Multiple samples showing the best practices in views-widgets on Android. - GitHub - android/views-widgets-samples: Multiple samples showing the best practices in views-widgets on Android.
github.com
그리고 fragment viewpager에 아래와 같이 NestedScrollableHost를 넣으니...

해결
NestedScrolableHost 레이아웃은 스크롤이 가능한 자식 하나만을 가져야 한다는것을 주의 해야한다.
'Android' 카테고리의 다른 글
Android - Palette (0) | 2022.11.11 |
---|---|
Android - Manifest (0) | 2022.11.02 |
[Android] 프로젝트 수준의 build.gradle 오류 (0) | 2022.08.17 |
GIF파일 적용 ImageView 적용하기 (0) | 2022.07.22 |
[Android] Fragment 생명주기 (0) | 2022.07.03 |
간단한 프로젝트를 진행하면서 처음 activity에 tablayout과 Viewpager2를 같이 사용했다.
그리고 fragment에 광고를 넣기 위해 Viewpager2를 사용했다.
그러자 activity의 viewpager는 움직이지만 fragment의 viewpager는 움직이지 않는 문제가 발생했다.
https://developer.android.com/training/animation/vp2-migration#nested-scrollables
ViewPager에서 ViewPager2로 이전 | Android 개발자 | Android Developers
ViewPager에서 ViewPager2로 이전 ViewPager2는 ViewPager 라이브러리의 개선된 버전으로, 향상된 기능을 제공하며 ViewPager 사용 시 발생하는 일반적인 문제를 해결합니다. 앱에서 ViewPager를 이미 사용하고
developer.android.com
중첩된 스크롤 가능 요소 지원
스크롤 뷰와 이 스크롤 뷰를 포함하는 ViewPager2 객체의 방향이 같은 경우 ViewPager2는 기본적으로 중첩된 스크롤 뷰를 지원하지 않습니다. 예를 들어 세로 방향 ViewPager2 객체 내의 세로 스크롤 뷰에서는 스크롤이 작동하지 않습니다.
방향이 동일한 ViewPager2 객체 내의 스크롤 뷰를 지원하려면 중첩된 요소 스크롤이 예상되는 경우 ViewPager2 객체의 requestDisallowInterceptTouchEvent()를 호출해야 합니다. ViewPager2 중첩 스크롤 샘플은 다목적 맞춤 래퍼 레이아웃을 사용하여 이 문제를 해결하는 한 가지 방법을 보여줍니다.
해결방안

NestedScrollableHost 클래스를 만들고 아래 깃허브의 코드를 그대로 복붙하여 넣었다.
GitHub - android/views-widgets-samples: Multiple samples showing the best practices in views-widgets on Android.
Multiple samples showing the best practices in views-widgets on Android. - GitHub - android/views-widgets-samples: Multiple samples showing the best practices in views-widgets on Android.
github.com
그리고 fragment viewpager에 아래와 같이 NestedScrollableHost를 넣으니...

해결
NestedScrolableHost 레이아웃은 스크롤이 가능한 자식 하나만을 가져야 한다는것을 주의 해야한다.
'Android' 카테고리의 다른 글
Android - Palette (0) | 2022.11.11 |
---|---|
Android - Manifest (0) | 2022.11.02 |
[Android] 프로젝트 수준의 build.gradle 오류 (0) | 2022.08.17 |
GIF파일 적용 ImageView 적용하기 (0) | 2022.07.22 |
[Android] Fragment 생명주기 (0) | 2022.07.03 |