Android divisor recyclerview itemDecoration é invisível até rolagem

votos
1

Eu tenho um RecyclerView simples como este:

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

Acrescento divisor no onCreate()método em Fragmento:

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

Eu também tenho um adaptador simples que contém os itens. O problema é que o divisor não é visível até que eu vá para cima ou para baixo a recyclerView. Eu tentei:

  • Rolagem programaticamente usando scrollTo(position)método para o último item eo primeiro item logo após atualizar itens no adaptador.
  • Adicionando NestedScrollView como um pai e de rolagem
    programmaticaly o scrollView por fullScroll(View.FOCUS_UP).

Nada ajuda. Os divisores são visíveis somente após a rolagem físico. A coisa estranha é que eu tenho mais RecyclerViews que funcionam bem.

EDITAR

Devido a Sharan Salian pedido para adicionar o layout item para o cargo para que ele pudesse reproduzir esse comportamento, eu realmente tentei reproduzi-lo por mim. O layout item pai é:

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

Eu não mencionei antes que eu estou usando o item como um SharedElement , é por isso que eu adicionei um atributo android:transitionGroup=truepara a tag pai. Depois de remover esse atributo, o DividerItemDecoration funciona bem. Uma vez que eu adicioná-lo, o divisor é invisível até que a rolagem. Parece que foi um erro.

Publicado 19/12/2018 em 14:09
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Recycler Ver Divisor programaticamente

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

Tente este trecho de código acima substituir com LinearLayout.Vertical & deixe-me saber.

você pode mostrar o seu layout item que você está inflando no adaptador?

Eu acho que o layout do item tem uma android:orientation = "horizontal"& você quer um divisor vertical. É apenas uma suposição como há muito poucas idéias que estou recebendo da questão.

Respondeu 20/12/2018 em 09:20
fonte usuário

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