mam RecyclerView
stosując LinearLayoutManager
z HORIZONTAL
orientacji zagnieżdżona wewnątrz FrameLayout
pomocą BottomSheet
Behavior
.RecyclerView (poziomo) zagnieżdżone BottomSheet zapobiegania pionowe przesuwanie
Podczas próby przeciągnięcia w pionie pomiędzy RecyclerView
, BottomSheet
nie odpowiada na zdarzenie przeciągania. Prawdopodobnie dzieje się tak dlatego, że pionowe przewijanie jest wyłączone dla ustawienia LayoutManager
z orientacją poziomą.
Próbowałem przesłonić LinearLayoutManager.canScrollVertically()
i zwracając true. Ten sortuje działa .. Jeśli przeciągniesz pionowo w bardzo ostrożny sposób, odpowie. Jednak w przypadku jakiegokolwiek ruchu poziomego, BottomSheet
przestaje odpowiadać na zdarzenia pionowego przeciągania.
Nie jestem pewien, czy przesłonięcie canScrollVertically()
jest właściwym podejściem - z pewnością nie jest to właściwe z punktu widzenia UX.
Zauważyłam również, że jeśli używam ViewPager
raczej niż RecyclerView
z poziomo LayoutManager
Z BottomSheet
reaguje na pionowych wydarzeń magnetycznych zgodnie z zapotrzebowaniem.
Czy istnieje jakaś inna metoda LayoutManager
, RecyclerView
, BottomSheet Behavior
, czy coś zupełnie innego, który może pomóc propagować pionowe zdarzenia przewijania do BottomSheet Behavior
?
Jest przykładem problemu tutaj:
https://github.com/timusus/bottomsheet-test (problem można odtworzyć z popełnić # f59a7031)
Wystarczy rozwinąć pierwszy prześcieradło.
Podejrzewałem, że 'FrameLayout' uniemożliwia propagowanie zdarzeń przewijania do 'CoordinatorLayout'. Myślę, że w pewnym momencie zbliżyłem się do tego rozwiązania, ale miałem problem z problemem z rzutnią. Dzięki wielkie. –