Mam pojedynczy, pionowy, zagnieżdżony widok, który zawiera garść widoków recyklingu z konfiguracją poziomego menedżera układu. Pomysł jest podobny do tego, jak wygląda nowy sklep Google Play. Mogę sprawić, by był funkcjonalny, ale nie jest w ogóle gładki. Oto problemy:NestedScrollView i Horizontal RecyclerView Smooth Scrolling
1) Pozioma pozycja recyklingu nie przechwytuje zdarzenia dotykowego przez większość czasu, mimo że dotknęłem go prawym przyciskiem. Widok przewijania wydaje się mieć pierwszeństwo dla większości ruchów. Ciężko jest mi zahaczyć o ruch poziomy. Ten UX jest frustrujący, ponieważ muszę go wypróbować kilka razy, zanim zadziała. Jeśli sprawdzisz sklep z zabawkami, będzie on w stanie przechwycić zdarzenie dotykowe naprawdę dobrze i po prostu działa dobrze. Zauważyłem, że w sklepie z zabawkami sposób, w jaki go ustawili, to wiele poziomych recyrkulacji w jednym pionowym widoku recyklingu. Bez przewijania.
2) Wysokość poziomych widoków recyklerów musi być ustawiona ręcznie i nie ma łatwego sposobu obliczania wysokości elementów podrzędnych.
Oto układ Używam:
<android.support.v4.widget.NestedScrollView
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:background="@color/dark_bgd"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/main_content_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
tools:visibility="gone"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/starring_list"
android:paddingLeft="@dimen/spacing_major"
android:paddingRight="@dimen/spacing_major"
android:layout_width="match_parent"
android:layout_height="180dp" />
Ten wzór UI jest bardzo podstawowe i najczęściej używane w wielu różnych aplikacjach. Czytałem wiele SO, w których ppl mówi, że nie jest dobrym pomysłem umieszczenie listy na liście, ale jest to bardzo powszechny i nowoczesny wzór UI używany wszędzie. Pomyśl o interfejsie podobnym do netflix z szeregiem poziomych list przewijania wewnątrz pionowa lista. Czy nie ma na to sprawnego sposobu?
przykład obraz ze sklepu:
Dziwne jest to, że mam przeciwny problem: chcę, aby NestedScrollView pozwalał na przewijanie w pionie, ale poziomy widok RecyclerView przejmuje zdarzenia dotykowe, więc gdy zaczynam przewijanie w pionie, to na to nie pozwala. Ponadto, btw, jeśli masz tylko kilka elementów do pokazania, możesz użyć prostego HorizontalScrollView z LinearLayout. –