Ho un singolo nestedscrollview verticale che contiene una serie di recyclerview con un layout orizzontale layoutmanager. L'idea è molto simile a come appare il nuovo Play Store di Google. Sono in grado di renderlo funzionale ma non è affatto liscio. Ecco i problemi:NestedScrollView e Recycler orizzontaleView Scrolling liscio
1) L'elemento di riciclo orizzontale non riesce a intercettare l'evento di tocco il più delle volte anche se tocco direttamente su di esso. La vista di scorrimento sembra avere la precedenza per la maggior parte dei movimenti. È difficile per me avere un gancio sul movimento orizzontale. Questo UX è frustrante, perché ho bisogno di provare un paio di volte prima che funzioni. Se controlli il Play Store, è in grado di intercettare l'evento touch molto bene e funziona perfettamente. Ho notato che nel play store il modo in cui sono stati impostati è un gran numero di ricircoli orizzontali all'interno di una raccolta verticale. Nessuna vista a scorrimento.
2) L'altezza dei riquadri orizzontali deve essere impostata manualmente e non esiste un modo semplice per calcolare l'altezza degli elementi figli.
Ecco il layout che sto utilizzando:
<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" />
Questo modello interfaccia utente è molto semplice e molto probabilmente utilizzato in molte applicazioni diverse. Ho letto molti SO in cui ppl dice che è una cattiva idea inserire una lista in una lista, ma è un modello di interfaccia utente molto comune e moderno usato in tutto il sito. Pensate all'interfaccia di netflix come ad una serie di liste di scroll orizzontali all'interno una lista verticale. Non c'è un modo semplice per realizzare questo?
immagine Esempio dal negozio:
La cosa strana è che ho il problema opposto: voglio che NestedScrollView permetta di scorrere verticalmente, ma il RecyclerView orizzontale prende gli eventi di tocco così quando inizio lo scorrimento verticale su di esso, non lo consente. Inoltre, se hai solo pochi elementi da mostrare, puoi utilizzare un semplice HorizontalScrollView con LinearLayout. –