RecyclerInnen innerhalb von ScrollView, einige Elemente werden nicht angezeigt

Ich hatte ein RecyclerView in ScrollView wie folgt:

<ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <!--other stuff--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="wrap_content" android:visibility="gone"/> </LinearLayout> <!--other stuff--> </ScrollView> 

Und das RecyclerView 's Item ist ein RelativeLayout , in dessen Innerem ein EditText und andere Ansichten vorhanden sind. Die layout_height von RelativeLayout und EditText ist beide wrap_content . Der Benutzer kann in diesen EditText ohne Begrenzung der Länge / Zeilen eingegeben werden, so dass die Höhe jedes Elements unterschiedlich ist.

  • Wie bekomme ich meinen Android Emulator mit dem VPN-Interface meines Computers?
  • Wie erkenne ich die Heap-Größenverwendung einer Android-Anwendung
  • Android: Mit ObjectAnimator, um eine Ansicht mit gebrochenen Werten der Dimension der Ansicht zu übersetzen
  • Wie deaktiviere ich die Internetverbindung im Android Emulator?
  • Nach dem Google Play Service Update auf Version 13 bekam ich einen Fehler
  • Erstellen von Basis-PSD, um Android App UI für mdpi, 320 / 480px Gerät zu entwerfen
  • Dann habe ich festgestellt, dass getItemCount() in Adapter wahren Wert zurückgibt, aber onBindViewHolder() von falschen Zeiten aufgerufen wird (kleiner als es sein sollte), also nicht genug, um alle Elemente onBindViewHolder() .

    Ich habe festgestellt, dass dies nur geschehen wird, wenn ich recyclerView.setNestedScrollingEnabled(false) . Aber ich kann diese Zeile nicht entfernen. Denn wenn ich das tat, wird das RecyclerView nicht reibungslos scrollen und ist nicht harmonisch mit anderen Ansichten in ScrollView und ScrollView selbst.

    Dies geschieht auf 6.0 aber nicht auf 4.1.

    Ich habe mit Google auf dieser Seite mitgeteilt: https://code.google.com/p/android/issues/detail?id=213914 und er hat mir gesagt, dass dies eine Fehlerbehebung für RecyclerView . Sie können diese Seite besuchen, damit Sie die Frage und mein Ziel besser verstehen können (es gibt ein kleines Beispielprojekt, um das Problem dort zu zeigen). Ich stimme ihm noch nicht zu und ich möchte das Problem lösen. Bitte helfen Sie, danke im Voraus.

  • Machen Sie einen ViewFlipper wie die Home Screen mit MotionEvent.ACTION_MOVE
  • Android: Wie man den Bildschirm ein- und ausschaltet programmgesteuert?
  • Kontext in einem Fragment verwenden
  • Verwendung von Target in Picasso auf Adapter
  • Bootstrap wysiwyg textarea Editor arbeitet auf Bootstrap 3
  • Unbestimmte Fortschritte in der Sherlock Action Bar zeigen
  • One Solution collect form web for “RecyclerInnen innerhalb von ScrollView, einige Elemente werden nicht angezeigt”

    Ich habe die Lösung selbst gefunden: Ersetzen Sie ScrollView mit NestedScrollView und halten Sie recyclerView.setNestedScrollingEnabled(false) . Ich weiß nicht, ob das ist, was NestedScrollView ist, aber es funktioniert.

    BEACHTEN:

    1. NestedScrollView ist kein Kind von ScrollView sondern von FrameLayout .
    2. Diese Lösung bringt auch einige Bugs mit selbst simulierten adjustResize .
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.