Ich habe mehrere HorizontalScrollViews innerhalb einer ScrollView. Horizontal Scroll ist überhaupt nicht glatt. Ich muss fast perfekt horizontal scrollen, um zur Arbeit zu scrollen. Gibt es eine einfache Lösung, um dies zu ändern? Vielen Dank!Android: HorizontalScrollView innerhalb ScrollView
Antwort
Sie können mit Versetzte Layout-Manager von
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.HORIZONTAL);
RecyclerViewAdapter recyclerViewAdapter = newRecyclerViewAdapter(this);
recyclerView.setAdapter(recyclerViewAdapter); //Don't miss to initialize your adapter
Es tut mir leid, ich denke, die URL ist genug? –
@yousefsafwat ** Nein ** ... ein Link ist * nie * genug. Sie müssen die wichtigen Teile einer Antwort hier auf dieser Seite veröffentlichen. –
Die Idee horizontal Listenansicht ist innerhalb vertikaler Listenansicht –
Im Allgemeinen sollten Sie keine verschachtelten ScrollViews in Android verwenden überhaupt, das Verhalten auf diese Weise zum Scrollen zu unnatürlich ist.
Sie möchten vielleicht Ihr Layout-Design überdenken, ist es etwas, das mit einer erweiterbaren Liste nicht erreicht werden könnte?
Wenn Sie jedoch 100% ig darüber sind, werfen Sie einen Blick auf die Lösung in: http://StackOverflow.com/Questions/2646028/android-horizontalscrollview-within-Scrollview-Touch-Handling?RQ= 1 – Guykun
Ich versuche, dieses Muster zu implementieren: http://www.androidpatterns.com/uap_pattern/scrollable-rows – vladexologija
Ich habe die Lösung gefunden und kann immer noch nicht glauben, dass dies ist, was Sie tun müssen, um diese Arbeit normal zu machen! Just added leer OnClickListener auf die einzelnen Elemente in der HorizontalScrollView:
item.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
Nachdem diese Folie wirklich glatt ist, nach oben und unten.
Wenn das der Fall ist, können Sie wahrscheinlich 'android: clickable =" true "' in Ihrem Listenelement root XML statt im Code. – ataulm
Diese Klasse erstellt eine ScrollView, die eine in einer Klasse zusammengefasste HorizontalScrollView enthält. Mit der AddChild() -Methode können Sie Objekte darin platzieren. Das DispatchTouchEvent Overide hält den Bildlauf weich, so dass Sie mit einem einzigen Fingerrutschen schwenken können.
(I verwendet, um diesen vor kurzem eine programmatisch erstellt Textview wickeln)
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 Millionen Dank es funktioniert wie Charme. –
Wenn Sie die horizontalen Scroll-View-Lösung verwenden, verwenden Recycler Ansicht (http://www.dev-smart.com/archives/34) die Lösung für das Querfokusproblem zwischen der Bildlaufansicht und der Listenansicht blockiert den Fokus auf die Bildlaufansicht Sobald Sie sich auf die Listenansicht konzentriert haben.
Aus technischer Sicht sollten Sie die folgende Zeile zur onScroll
-Funktion innerhalb der HorizontalListView-Klasse hinzufügen.
getParent().requestDisallowInterceptTouchEvent(true);
Hoffe, das hilft.
Während Davids Antwort funktioniert, hat es einen Nachteil. Es übergibt das MotionEvent-Objekt von ScrollView direkt an HorizontalScrollView.onTouchEvent(). Wenn also HorizontalScrollView oder seine untergeordneten Objekte versuchen, die Ereigniskoordinaten abzurufen, erhalten sie die falschen Koordinaten, die auf ScrollView basieren.
Meine Lösung:
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);
}
}
einfach wickeln diese CustomScrollView um die HorizontalScrollView in Ihrem Layout-Datei.
- 1. ScrollView innerhalb ScrollView funktioniert nicht
- 2. Android: Autoscrolling HorizontalScrollView
- 3. Fit ImageView zu LinearLayout innerhalb von HorizontalScrollView
- 4. Android ScrollView nicht srcoll innerhalb LinearLayout
- 5. RecyclerView innerhalb ScrollView - ScrollView funktioniert nicht
- 6. ScrollView innerhalb RelativeLayout funktioniert nicht
- 7. Android - Zentrierung Button in einem HorizontalScrollView
- 8. Android - HorizontalScrollView kann nichts enthalten
- 9. ListView-Elemente nicht anklickbar mit HorizontalScrollView innerhalb
- 10. Android ScrollView
- 11. Tastatur mit scrollView
- 12. MPAndroidChart innen HorizontalScrollView
- 13. Android ScrollView Layout Problem
- 14. wie für HorizontalScrollView
- 15. pushViewController: animiert: innerhalb von ScrollView
- 16. Erweiterbare Listenansicht innerhalb von scrollview
- 17. Scrollview in einem Scrollview in Android-Ausgabe
- 18. Android: ScrollView scrollt nicht
- 19. Android Webview-Beispiel innerhalb von scrollview/kann nicht scrollen
- 20. Android: ViewPager mit einer dynamischen Höhe innerhalb einer ScrollView
- 21. Wie scrollt man die äußere scrollView nicht innerhalb scrollView?
- 22. android: state_activated für textviews in horizontalscrollview
- 23. HorizontalScrollView kann nicht mit Android arbeiten: WeightSum?
- 24. Wie synchronisiere ich zwei ScrollView in Android?
- 25. Horizontale RecyclerView innerhalb der vertikalen ScrollView
- 26. React-native: Scrollview innerhalb von panResponder
- 27. Wie benutzt man HorizontalScrollView?
- 28. Android ScrollView Vs ListView
- 29. alphabetische scrollview in android
- 30. ScrollView nicht Scrollen - Android
Ich versuche, eine ähnliche Benutzeroberfläche zu erreichen. Meine Scrollansicht ist jedoch nicht glatt und friert beim Scrollen ein. Hatten Sie in Ihrem Projekt ähnliche Probleme? Vielen Dank! – gauravsapiens
Haben Sie onClickListener()? – vladexologija
Ja, im Adapter von HorizontalListView! – gauravsapiens