当前位置: 首页>>代码示例>>Java>>正文


Java RecyclerView.RecycledViewPool方法代码示例

本文整理汇总了Java中android.support.v7.widget.RecyclerView.RecycledViewPool方法的典型用法代码示例。如果您正苦于以下问题:Java RecyclerView.RecycledViewPool方法的具体用法?Java RecyclerView.RecycledViewPool怎么用?Java RecyclerView.RecycledViewPool使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在android.support.v7.widget.RecyclerView的用法示例。


在下文中一共展示了RecyclerView.RecycledViewPool方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: onCreate

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_multi_recycler_view);
    ButterKnife.bind(this);

    toolbar.setNavigationOnClickListener(new NavigationFinishClickListener(this));

    RecyclerView.RecycledViewPool recycledViewPool = new RecyclerView.RecycledViewPool();
    recyclerView0.setRecycledViewPool(recycledViewPool);
    recyclerView1.setRecycledViewPool(recycledViewPool);

    recyclerView0.setLayoutManager(new LinearLayoutManager(this));
    recyclerView1.setLayoutManager(new LinearLayoutManager(this));

    new VerticalHeader(this, recyclerView0);
    new VerticalHeader(this, recyclerView0);
    new VerticalFooter(this, recyclerView0);
    new VerticalFooter(this, recyclerView0);

    new VerticalHeader(this, recyclerView1);
    new VerticalHeader(this, recyclerView1);
    new VerticalFooter(this, recyclerView1);
    new VerticalFooter(this, recyclerView1);

    adapter0 = new LinearVerticalAdapter(this);
    adapter0.getIllustList().addAll(ApiClient.buildIllustList());
    recyclerView0.setAdapter(adapter0);

    adapter1 = new LinearVerticalAdapter(this);
    adapter1.getIllustList().addAll(ApiClient.buildIllustList());
    recyclerView1.setAdapter(adapter1);
}
 
开发者ID:TakWolf,项目名称:Android-HeaderAndFooterRecyclerView,代码行数:34,代码来源:MultiRecyclerViewActivity.java

示例2: apply

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * init the cache on your own.
 *
 * @param recyclerView
 * @param items
 */
public void apply(RecyclerView recyclerView, Iterable<Item> items) {
    if (items != null) {
        //we pre-create the views for our cache
        HashMap<Integer, Stack<RecyclerView.ViewHolder>> cache = new HashMap<>();
        for (Item d : items) {
            if (!cache.containsKey(d.getType())) {
                cache.put(d.getType(), new Stack<RecyclerView.ViewHolder>());
            }

            if (mCacheSize == -1 || cache.get(d.getType()).size() <= mCacheSize) {
                cache.get(d.getType()).push(d.getViewHolder(recyclerView));
            }

            RecyclerView.RecycledViewPool recyclerViewPool = new RecyclerView.RecycledViewPool();

            //we fill the pool
            for (Map.Entry<Integer, Stack<RecyclerView.ViewHolder>> entry : cache.entrySet()) {
                recyclerViewPool.setMaxRecycledViews(entry.getKey(), mCacheSize);

                for (RecyclerView.ViewHolder holder : entry.getValue()) {
                    recyclerViewPool.putRecycledView(holder);
                }

                //make sure to clear the stack
                entry.getValue().clear();
            }

            //make sure to clear the cache
            cache.clear();

            recyclerView.setRecycledViewPool(recyclerViewPool);
        }
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:41,代码来源:RecyclerViewCacheUtil.java

示例3: RecyclablePagerAdapter

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public RecyclablePagerAdapter(RecyclerView.Adapter<VH> adapter, RecyclerView.RecycledViewPool pool) {
    this.mAdapter = adapter;
    if (pool instanceof InnerRecycledViewPool) {
        this.mRecycledViewPool = (InnerRecycledViewPool) pool;
    } else {
        this.mRecycledViewPool = new InnerRecycledViewPool(pool);
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:9,代码来源:RecyclablePagerAdapter.java

示例4: recycleView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private void recycleView(@NonNull BaseCell cell) {
    if (!mViewHolders.isEmpty()) {
        RecyclerView.RecycledViewPool pool = cell.serviceManager.getService(RecyclerView.RecycledViewPool.class);
        for (int i = 0, size = mViewHolders.size(); i < size; i++) {
            BinderViewHolder viewHolder = mViewHolders.get(i);
            viewHolder.unbind();
            removeView(viewHolder.itemView);
            pool.putRecycledView(viewHolder);
        }
        mViewHolders.clear();
    }
}
 
开发者ID:alibaba,项目名称:Tangram-Android,代码行数:13,代码来源:LinearScrollView.java

示例5: setNumAppsPerRow

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * Sets the number of apps per row in this recycler view.
 */
public void setNumAppsPerRow(DeviceProfile grid, int numAppsPerRow) {
    mNumAppsPerRow = numAppsPerRow;

    RecyclerView.RecycledViewPool pool = getRecycledViewPool();
    int approxRows = (int) Math.ceil(grid.availableHeightPx / grid.allAppsIconSizePx);
    pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_EMPTY_SEARCH, 1);
    pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_SEARCH_DIVIDER, 1);
    pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET_DIVIDER, 1);
    pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET, 1);
    pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_ICON, approxRows * mNumAppsPerRow);
    pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_PREDICTION_ICON, mNumAppsPerRow);
    pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_PREDICTION_DIVIDER, 1);
    pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_SECTION_BREAK, approxRows);
}
 
开发者ID:TeamBrainStorm,项目名称:SimpleUILauncher,代码行数:18,代码来源:AllAppsRecyclerView.java

示例6: setNumAppsPerRow

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * Sets the number of apps per row in this recycler view.
 */
public void setNumAppsPerRow(DeviceProfile grid, int numAppsPerRow) {
    mNumAppsPerRow = numAppsPerRow;

    RecyclerView.RecycledViewPool pool = getRecycledViewPool();
    int approxRows = (int) Math.ceil(grid.availableHeightPx / grid.allAppsIconSizePx);
    pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_EMPTY_SEARCH, 1);
    pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_SEARCH_DIVIDER, 1);
    pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET_DIVIDER, 1);
    pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET, 1);
    pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_ICON, approxRows * mNumAppsPerRow);
}
 
开发者ID:enricocid,项目名称:LaunchEnr,代码行数:15,代码来源:AllAppsRecyclerView.java

示例7: getViewFromRecycler

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private View getViewFromRecycler(@NonNull BaseCell cell) {
    GroupBasicAdapter adapter = cell.serviceManager.getService(GroupBasicAdapter.class);
    RecyclerView.RecycledViewPool pool = cell.serviceManager.getService(RecyclerView.RecycledViewPool.class);
    int itemViewType = adapter.getItemType(cell);
    BinderViewHolder holder = (BinderViewHolder) pool.getRecycledView(itemViewType);
    if (holder == null) {
        holder = (BinderViewHolder) adapter.createViewHolder(this, itemViewType);
    }
    holder.bind(cell);
    mViewHolders.add(holder);
    return holder.itemView;
}
 
开发者ID:alibaba,项目名称:Tangram-Android,代码行数:13,代码来源:LinearScrollView.java

示例8: onCreate

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    mRecyclerView = (RecyclerView) findViewById(R.id.recycler);

    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
    mRecyclerView.addItemDecoration(new RecyclerViewDivider(this).orientation(LinearLayoutManager.VERTICAL)
            .itemsDividerWidth(1)
            .beforeFirstViewDividerWidth(1)
            .afterLastViewDividerWidth(1)
    );

    mRecyclerView.setLayoutManager(layoutManager);

    RecyclerView.RecycledViewPool recycledViewPool = new RecyclerView.RecycledViewPool();
    //设置每种布局最大缓存数量,可以不设置
    recycledViewPool.setMaxRecycledViews(0, 15);
    recycledViewPool.setMaxRecycledViews(1, 15);
    recycledViewPool.setMaxRecycledViews(2, 15);
    recycledViewPool.setMaxRecycledViews(3, 15);
    recycledViewPool.setMaxRecycledViews(4, 15);
    mRecyclerView.setRecycledViewPool(recycledViewPool);

    mAdapter = new MultiTypeRecyclerAdapter();
    mRecyclerView.setAdapter(mAdapter);

    List<ItemViewFactory> data = getData();
    mAdapter.setData(data);

    findViewById(R.id.but).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mAdapter.setData(getData2());
        }
    });
}
 
开发者ID:android-notes,项目名称:multityperecyclerview,代码行数:40,代码来源:MainActivity.java

示例9: OuterAdapter

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public OuterAdapter(List<List<InnerData>> data) {
    this.mData = data;

    mPool = new RecyclerView.RecycledViewPool();
    mPool.setMaxRecycledViews(0, POOL_SIZE);
}
 
开发者ID:Ramotion,项目名称:showroom-android,代码行数:7,代码来源:OuterAdapter.java

示例10: PagerAdapter

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public PagerAdapter(SubAdapter adapter, RecyclerView.RecycledViewPool pool) {
    super(adapter, pool);
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:4,代码来源:VLayoutActivity.java

示例11: InnerRecycledViewPool

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public InnerRecycledViewPool() {
    this(new RecyclerView.RecycledViewPool());
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:4,代码来源:InnerRecycledViewPool.java

示例12: getRecycledViewPool

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public RecyclerView.RecycledViewPool getRecycledViewPool() {
    if (serviceManager != null) {
        return serviceManager.getService(RecyclerView.RecycledViewPool.class);
    }
    return null;
}
 
开发者ID:alibaba,项目名称:Tangram-Android,代码行数:7,代码来源:LinearScrollCell.java

示例13: setShareViewPool

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * 设置主层级与副层级使用一个RecycledViewPool
 *
 * @param viewPool
 */
public void setShareViewPool(RecyclerView.RecycledViewPool viewPool) {
    getMainRecyclerView().setRecycledViewPool(viewPool);
    getSubRecyclerView().setRecycledViewPool(viewPool);
}
 
开发者ID:AlphaBoom,项目名称:ClassifyView,代码行数:10,代码来源:ClassifyView.java

示例14: InnerRecycledViewPool

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * Wrap an existing pool
 *
 * @param pool
 */
public InnerRecycledViewPool(RecyclerView.RecycledViewPool pool) {
    this.mInnerPool = pool;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:9,代码来源:InnerRecycledViewPool.java


注:本文中的android.support.v7.widget.RecyclerView.RecycledViewPool方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。