【实训】自定义上拉加载下拉刷新的RecycleView

本文介绍RecycleView这一灵活且强大的Android控件,它可以替代ListView和GridView,并通过不同的LayoutManager实现多种布局方式,如瀑布流等。文章还提供了实现加载更多及刷新功能的具体代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RecycleView是个什么东西,大家应该都知道,即是support-v7里面的一个控件,他完全可以替代ListVIew和GridView,和他们的区别呢?

主要是RecycleView更加的灵活,通过设置它提供的不同LayoutManager(布局管理器),ItemDecoration(间隔) , ItemAnimator(增减动画),遗憾是点击事件什么的得自己完成,不过这个也不复杂,不是什么大问题。

在没有RecycleView时,实现瀑布流是非常麻烦的一件事情,有了RecycleView就可以很好的实现了

再加上拉加载和SwipeRefreshLayout实现刷新就可以完成一个适用于单列表,网格,瀑布流都可以显示的控件


代码:

点击下载


使用:

//recycerview

LoadMoreRecyclerView mRecyclerView = (LoadMoreRecyclerView) view.findViewById(R.id.ad_recyclerview_picture);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mRecyclerView.setOnPauseListenerParams(ImageLoader.getInstance(), false, true);
mRecyclerView.setAutoLoadMoreEnable(true);
//设置为瀑布流
mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));
//设置适配器
ArrayList<Map<String, Object>> items = Collections.synchronizedList(new ArrayList<Map<String, Object>>());
AdapterInAdPicture myadapter = new AdapterInAdPicture(context, items);//自定义的adapter继承RecyclerView.Adapter
mRecyclerView.setAdapter(myadapter);
mRecyclerView.setLoadMoreListener(new LoadMoreRecyclerView.LoadMoreListener() {
    @Override
    public void onLoadMore() {
        //加载的部分
        load(true);
    }
});
//刷新
SwipeRefreshLayout mSwipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.ad_refresh_layout);
mSwipeRefreshLayout.setColorSchemeResources(R.color.ad_background_yellow);
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
    @Override
    public void onRefresh() {
        //刷新的部分
        items.clear();
        myadapter.notifyDataSetChanged();
        page_dynamic = 1;
        dynamicIsEmpty = false;
        load(false);
    }
});

效果:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值