Android divisor recyclerview itemDecoration es invisible hasta de desplazamiento

votos
1

Tengo un RecyclerView simple como esto:

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

Añado divisor en el onCreate()método en el fragmento:

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

También tengo un adaptador simple que contiene los elementos. El problema es, que el divisor no es visible hasta que desplazarse hacia arriba o hacia abajo la recyclerView. Lo intenté:

  • Desplazamiento de programación utilizando scrollTo(position)el método al último elemento y el primer elemento de la derecha después de la actualización de artículos en el adaptador.
  • Añadiendo NestedScrollView como padre y el desplazamiento
    programmaticaly la ScrollView por fullScroll(View.FOCUS_UP).

Nada ayuda. Los divisores son visibles sólo después de que el desplazamiento físico. Lo extraño es que tengo otro RecyclerViews que funcionan bien.

EDITAR

Debido a Sharan Salian petición de añadir el diseño de elemento para el puesto para que pudiera reproducir este comportamiento, en realidad trató de reproducir por mí mismo. El diseño elemento principal es:

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

No he mencionado antes, que estoy usando el tema como un SharedElement , por eso he añadido un atributo android:transitionGroup=truea la etiqueta principal. Después de quitar este atributo, el DividerItemDecoration funciona bien. Una vez que lo añado, el divisor es invisible hasta que el rollo. Parece que fue un error.

Publicado el 19/12/2018 a las 14:09
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

Reciclador Ver Divisor mediante programación

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

Prueba este fragmento de código anterior reemplazar con LinearLayout.Vertical y que me haga saber.

Se puede mostrar su disposición elemento que está inflando en el adaptador?

Creo que su diseño tiene un tema android:orientation = "horizontal"y desea que un divisor vertical. Es sólo una suposición, ya que hay muy pocos puntos de vista que recibo de la pregunta.

Respondida el 20/12/2018 a las 09:20
fuente por usuario

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