Ho più HorizontalScrollViews all'interno di uno ScrollView. Lo scorrimento orizzontale non è affatto fluido. Devo scorrere quasi perfettamente orizzontalmente per far scorrere il lavoro. C'è una soluzione semplice per modificare questo ??? Grazie!Android: HorizontalScrollView all'interno di ScrollView
risposta
È possibile utilizzare vista Recycler con sfalsati gestore di layout
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.HORIZONTAL);
RecyclerViewAdapter recyclerViewAdapter = newRecyclerViewAdapter(this);
recyclerView.setAdapter(recyclerViewAdapter); //Don't miss to initialize your adapter
Mi dispiace, penso che l'url sia sufficiente? –
@yousefsafwat ** No ** ... un collegamento è * mai * sufficiente. È necessario pubblicare le parti importanti di una risposta qui, su questo sito. –
L'idea è di mettere listview orizzontale all'interno listview verticale –
In generale, non si dovrebbe usare ScrollViews annidati in Android a tutti, il comportamento di scorrimento in questo modo è innaturale troppo.
Si consiglia di ripensare la progettazione del layout, è tutto ciò che non è possibile ottenere con un elenco espandibile?
Se al 100% siete fermamente convinti di ciò, date un'occhiata alla soluzione in: http://stackoverflow.com/questions/2646028/android-horizontalscrollview-within-scrollview-touch-handling?rq= 1 – Guykun
Sto provando a implementare questo modello: http://www.androidpatterns.com/uap_pattern/scrollable-rows – vladexologija
Ho trovato la soluzione e ancora non riesco a credere che questo è quello che devi fare per rendere questo lavoro normale! Appena aggiunto onClickListener vuoto alla ciascun elemento della HorizontalScrollView:
item.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
Dopo questa diapositiva è davvero liscia, sia verso l'alto e verso il basso.
se questo è il caso, puoi probabilmente inserire 'android: clickable =" true "' nella tua voce di elenco root XML, anziché nel codice. – ataulm
Questa classe crea una ScrollView contenente un HorizontalScrollView combinato in una classe. Puoi mettere cose al suo interno usando il metodo AddChild(). Il dispatchTouchEvent overide mantiene lo scorrimento scorrevole in modo da poter scorrere con un solo vetrino del dito.
(di recente ho usato questo per avvolgere una TextView di programmazione creato)
class MultiScrollView extends ScrollView
{
public HorizontalScrollView hscroll;
public MultiScrollView (Context context)
{
super(context);
}
public void AddChild(View child)
{
hscroll.addView(child);
}
@Override
public boolean dispatchTouchEvent(MotionEvent event)
{
hscroll.dispatchTouchEvent(event);
onTouchEvent(event);
return true;
}
}
David milioni grazie funziona come un incanto. –
Se si utilizza la soluzione di visualizzazione di scorrimento orizzontale da (http://www.dev-smart.com/archives/34) la soluzione per il problema di fuoco incrociato tra la vista di scorrimento e la vista elenco sta bloccando lo stato attivo su scroll view dopo aver messo a fuoco la visualizzazione elenco.
Da un punto di vista tecnico è necessario aggiungere la seguente riga alla funzione onScroll
all'interno della classe HorizontalListView.
getParent().requestDisallowInterceptTouchEvent(true);
Spero che questo aiuti.
Mentre la risposta di David funziona, ha un aspetto negativo. Passa l'oggetto MotionEvent di ScrollView direttamente a HorizontalScrollView.onTouchEvent(), quindi se HorizontalScrollView oi suoi figli cercano di ottenere le coordinate dell'evento, otterranno le coordinate sbagliate basate su ScrollView.
La mia soluzione:
public class CustomScrollView extends ScrollView{
/*************skip initialization*************/
@Override
public boolean onInterceptTouchEvent(MotionEvent e){
//returning false means ScrollView is not interested at any events,
//so ScrollView's onTouchEvent() won't be called,
//and all of the events will be passed to ScrollView's child
return false;
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//manually call ScrollView's onTouchEvent(),
//the vertical scrolling happens there.
onTouchEvent(ev);
//dispatch the event,
//ScrollView's child will have every event.
return super.dispatchTouchEvent(ev);
}
}
Basta avvolgere questo CustomScrollView intorno al HorizontalScrollView nel file di layout.
- 1. Posizione di impostazione Android di scrollview orizzontale
- 2. Menu orizzontale con HorizontalScrollView-android
- 3. Scrollview orizzontale all'interno dell'oggetto ListView?
- 4. Android: HorizontalScrollView in una riga ListView Item, focus issue
- 5. Scrollview all'interno di una scrollview nel numero di Android
- 6. Android HorizontalScrollView con layout_gravity corretto funzionante errato
- 7. nascondi scrollview stick android
- 8. Android ScrollView bordo dissolvenza
- 9. Android ScrollView isFinished?
- 10. ScrollView not Scrolling - Android
- 11. Come scorrere un HorizontalScrollView sul pulsante clic in Android?
- 12. Sync Two ScrollView
- 13. ListView con ScrollView orizzontale
- 14. Ottieni il massimo di scroll HorizontalScrollView
- 15. Animazione rotazione Android con ScrollView
- 16. Android: ScrollView non sta scorrendo
- 17. Personalizzazione Android ScrollView verticale Scrollbar
- 18. Scrollview Android rimuovi luce blu
- 19. Come aumentare l'altezza di ScrollView in Android?
- 20. Android: pin TabLayout all'inizio di Scrollview
- 21. HorizontalScrollView get Visible Children
- 22. come trovare fine del valore di scorrimento per HorizontalScrollView
- 23. HorizontalScrollView with arrows
- 24. Come rendere HorizontalScrollView RIGHT a SINISTRA Scroll android
- 25. scrollView e footer issue in android
- 26. ScrollView Android elevazione bambino clipping ombra
- 27. Come creare scrollview rimbalzabili in Android?
- 28. Android onScrollChanged per Scrollview Fired Multiple Times
- 29. Come aggiungere scrollview a keyboardView in Android
- 30. Android: rilevare quando ScrollView tocca il fondo
Sto cercando di ottenere un'interfaccia utente simile. Tuttavia, la mia scrollview non è liscia e si blocca durante lo scorrimento. Hai affrontato problemi simili nel tuo progetto? Grazie! – gauravsapiens
Hai onClickListener()? – vladexologija
Sì, all'interno dell'adattatore di HorizontalListView! – gauravsapiens