2017-03-17 1 views
0

変更されたTwoWayViewを使用していますを使用しているため、私の見解はすべて異なるサイズになる可能性があります。 私の最初のいくつかのビューがスクロールし、その後、サイズが大きいと私は少しスクロールした後素晴らしい作品方法setMaxRecycledViewsを持つビューの変化量(そのビューの所有者の変更の量)RecyclerViewのViewHoldersの最小量ですか?

ので、ラグになります。

私もgetExtraLayoutSpaceで試してみましたが、私はそれを使用するべきではないと思います。

基本的に私は異なるサイズのビューを持つことができますが、それらは同じレイアウトを持っています。上部には全体の幅を占めるビューがあり、全体の幅を占めるビューです。したがって、2つのビューホルダーが読み込まれますが、スクロールするとすぐに16個のビューホルダーが必要になり、そのために遅れが生じます。

ViewHoldersを最小限に抑える方法はありますか?

+0

ビューの表示をVISIBLE、INVISIBLE(表示されませんが、スペースを占有するか、またはGONE(スペースを占有しない)をオプションとして設定できます – HaroldSer

答えて

2

これは、基本的に何が(5のデフォルトから)15に最大のスクラップを高め、12件のスクラップを追加する開始する前に、私

RecyclerView.RecycledViewPool recycledViewPool = new RecyclerView.RecycledViewPool(); 
    recycledViewPool.setMaxRecycledViews(0, 16); 
    MyAdapter adapter = new MyAdapter(getContext()); 
    for (int i = 0; i < 16; i++) { 
     MyAdapter.SimpleViewHolder simpleViewHolder = myAdapter.createViewHolder(mTwoWayView, 0); 
     recycledViewPool.putRecycledView(simpleViewHolder); 
    } 
    recyclerView.setRecycledViewPool(recycledViewPool); 

のためのトリックを行いました。このように、グリッドレイアウトが1から16に変わると、ビューホルダーはすでにプールに入っています。

関連する問題