diviseur de itemDecoration Android recyclerview est invisible jusqu'à ce que défilement

voix
1

J'ai simple RecyclerView comme ceci:

  <android.support.v7.widget.RecyclerView
        android:id=@+id/tempRv
        android:layout_width=match_parent
        android:layout_height=match_parent
    </android.support.v7.widget.RecyclerView>

J'ajoute diviseur onCreate()méthode Fragment:

    mRv = (RecyclerView) view.findViewById(R.id.tempRv);
    mRv.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL));

J'ai aussi un adaptateur simple qui contient les éléments. Le problème est que le diviseur n'est pas visible jusqu'à ce que je défiler vers le haut ou vers le bas du recyclerView. J'ai essayé:

  • Faire défiler par programmation en utilisant la scrollTo(position)méthode du dernier élément et le premier élément juste après la mise à jour des éléments dans l'adaptateur.
  • Ajout NestedScrollView en tant que parent et en faisant défiler
    programmaticaly le ScrollView par fullScroll(View.FOCUS_UP).

Rien n'y fait. Les séparations sont visibles seulement après le défilement physique. La chose étrange est que j'ai un autre RecyclerViews qui fonctionnent bien.

MODIFIER

En raison de Sharan Saliens demande d'ajouter la mise en page de l' article au poste afin qu'il puisse reproduire ce comportement, j'ai essayé de le reproduire par moi - même. La mise en page de parent article est:

<?xml version=1.0 encoding=utf-8?>
<RelativeLayout
    xmlns:android=http://schemas.android.com/apk/res/android
    android:layout_width=match_parent
    android:layout_height=wrap_content
    android:clickable=true
    android:focusable=true
    android:transitionGroup=true
    android:background=?android:attr/selectableItemBackground
    android:padding=16dp>
    ... 
    <TextView
            android:id=@+id/text
            android:layout_width=wrap_content
            android:layout_height=wrap_content
            />
    ...

</RelativeLayout>

Je ne l' ai pas mentionné avant que j'utilise l'élément comme SharedElement , c'est pourquoi j'ai ajouté un attribut android:transitionGroup=trueà la balise parent. Après avoir retiré cet attribut, le DividerItemDecoration fonctionne très bien. Une fois que je l' ajoute, le diviseur est invisible jusqu'à ce que le défilement. On dirait juste un bug.

Créé 19/12/2018 à 14:09
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Recycleur Voir Diviseur Programmatically

mRv.addItemDecoration (nouveau DividerItemDecoration (getContext (), LinearLayout.VERTICAL));

Essayez cet extrait de code ci - dessus remplacer par LinearLayout.Vertical et laissez - moi savoir.

Pouvez-vous montrer votre mise en page de l'article que vous gonflez dans l'adaptateur?

Je pense que votre mise en page de l' article a un android:orientation = "horizontal"& vous voulez un diviseur vertical. Il est juste une hypothèse car il y a un aperçu très peu que je reçois de la question.

Créé 20/12/2018 à 09:20
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more