2016-05-31 5 views
4

後、私は以下の画像のようにRecyclerViewを持ってサイズを変更提示:RecyclerView項目リフレッシュ

RecyclerView

これは、このRecyclerViewのためのセットアップコードです:

RecyclerView.LayoutManager layoutManager = new GridLayoutManager(this, 2); 
dataRecyclerView.setLayoutManager(layoutManager); 
dataRecyclerView.addItemDecoration(new GridSpacingItemDecoration(...); 
dataRecyclerView.setItemAnimator(new DefaultItemAnimator()); 

どこ新しい活動を開始した後RecyclerViewの選択項目を更新すると、RecyclerViewに新しいデータが追加されて新しい変更が反映されますが、次の結果が得られます。

Result 1

そして、私がスクロールダウンしたときに、私はこのギャップを得る:

Result 2

私はリフレッシュした後、しかし無駄にRecyclerView#invalidate()#invalidateItemDecorations()#requestLayout()を呼び出してみました。 & RecyclerViewsetHasFixedSize(true)も電話していません。

問題は何ですか?どのようにして子要素のサイズを変更して、コンテンツをきちんとラップするようにすることができますか?

(PS:私は、問題が場合にのみ、子アイテムの高さの変化を生じたというのが私の理論を証明している、&何事もなかっ何も変更せずにリフレッシュしようとした)かなり後半だが、私もこれを経験している

+0

シェアは、アダプタ – Alexander

+0

のあなたのコードは、それはいくつかの一般的なクラスを拡張して、アダプタのコードが少し長いです –

+0

...アダプタのアダプタおよびXMLコードを投稿してください。しかし、バインディングプロセスは非常に正常です。 –

答えて

1

問題。これは、まだ同じバグを持っている人にとっては役に立ちます。

私の場合では、溶液は、チェックしていたrecyclerviewのための任意のアイテムの装飾がある場合:

recyclerView.addItemDecoration(new SpacesItemDecoration(8));

は、このラインは毎回のrecyclerviewが更新されるとrecyclerviewの項目が小さくなって作りましたと呼ばれていました。他の人に役立つことを願っています。

ハッピーコーディング、 グラップラー

+0

あなたの "遅い"提案をありがとうございます、私は現時点でこの修正を試みる立場にはありませんが、私は確かにそれを念頭に置いています。ありがとう! –

関連する問題