Closed domino8788 closed 4 years ago
여러 방안을 찾았지만 가장 나은 방안을 명시한다.
https://github.com/kafumi/android-bottomsheet-viewpager 위의 링크를 참고해 BottomSheet를 수정한다.
해당 방안은 BottomSheet가 ViewPager를 상속한 뷰를 기반으로 생성되게 하고 설계한 동작이 적용되도록 일부 이벤트를 오버라이드 한다.
일부 이벤트를 오버라이드 할 때 Proguard 와 관련된 속성을 몇 개 지정해야 한다.
해당 방안을 적용하기 위해서는 레이아웃에서도 수정이 필요하다. BottomSheet에 표시 할 Fragment 레이아웃의 구조를 FrameLayout - NestedScrollView - Fragment 내용물 위와 같이 수정한다.
FrameLayout 을 빼면 BottomSheet의 확장 상태와 무관하게 스크롤 되므로 설계 의도에 어긋난다.
ScrollView가 아닌 NestedScrollView 를 사용해야 한다.
Fragment 내용물 중 스크롤이 가능한 뷰 ( ex) ListView ) 의 경우 android:nestedScrollingEnabled="false" 를 설정해야 뷰를 클릭할 때 스크롤이 막히지 않는다.
[x] 위의 사항을 반영해 BottomSheet를 수정한다.
[x] 링크를 참고해 Proguard 를 수정한다.
[x] 기존 ViewPager 를 삭제한다.
[x] 위의 사항을 반영해 Fragment 의 레이아웃을 수정한다.
위의 커밋을 통해 버그를 해결했으므로 이슈를 닫는다.
branch : feature/calendar 95d18eff 커밋에서 ViewPager 내 Fragment의 View를 클릭 한 상태로 스크롤 시 BottomSheet 에 스크롤이 전해지지 않고 있다.
다음 기능이 가능하도록 하는 방안을 연구한다.
해당 BottomSheet의 설계의도는 다음과 같다.