RecyclerView à l'intérieur de ScrollView, certains éléments ne sont pas affichés

J'ai eu un RecyclerView dans le ScrollView comme ceci:

<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>

Et la RecyclerView'élément est un RelativeLayout, à l'intérieur de laquelle il y a un EditText et d'autres points de vue. Le layout_height de RelativeLayout et EditText est à la fois wrap_content. L'utilisateur peut entrer dans le EditText sans aucune limite de longueur de lignes, de sorte que chaque élément de la hauteur est différente.

Puis j'ai trouvé que getItemCount() dans Adapter renvoie la valeur vrai, mais onBindViewHolder() s'appelle de la mauvaise fois(à moins qu'elle ne devrait l'être), donc pas assez d'afficher tous les éléments.

J'ai trouvé que cela n'arrivera que si j'ai écrit recyclerView.setNestedScrollingEnabled(false). Mais je ne peux pas supprimer cette ligne. Parce que si je l'ai fait, le RecyclerView de ne pas les faire défiler lentement et n'est pas en harmonie avec d'autres points de vue à l'intérieur de ScrollView et ScrollView lui-même.

Cela se produit sur 6.0 mais pas sur 4.1.

J'ai communiqué avec Google à partir de cette page: https://code.google.com/p/android/issues/detail?id=213914 et il m'a dit c'est un bug fix pour RecyclerView. Vous pouvez visiter cette page afin que vous puissiez comprendre la question et mon objectif de mieux(Il y a un petit exemple de projet pour montrer le problème). Je ne suis pas d'accord avec lui, même maintenant, et je veux résoudre le problème. S'il vous plaît aider, je vous remercie à l'avance.

essayez de mettre android:fillViewport="true" dans le scrollview
Eh bien, ça n'aide pas.
avec android:fillViewPort="true", le changement linéaire de la hauteur de présentation de match_parent
Encore inutile.

OriginalL'auteur ywwynm | 2016-06-28