SwipeRefreshLayout下拉刷新:

SwipeRefreshLayout用于实现下拉刷新功能,需包裹一个可滑动的子控件。通过设置OnRefreshListener监听,重写onRefresh()方法来处理刷新逻辑。常用方法包括设置刷新状态、进度条颜色和背景颜色等。

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

注意:SwipeRefreshLayout中只能有一个控件
建议:与万能适配器配套使用
简介:
使用SwipeRefreshLayout可以实现下拉刷新,前提是布局里需要包裹一个可以滑动的子控件,然后在代码里设置OnRefreshListener设置监听,最后在监听里设置刷新时的数据获取就可以了
常用方法:
isRefreshing()
判断当前的状态是否是刷新状态

setColorSchemeResources(int… colorResIds)
设置下拉进度条的颜色主题,参数为可变参数,并且是资源id,可以设置多种不同的颜色,每转一圈就显示一种颜色。

setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener)
设置监听,需要重写onRefresh()方法,顶部下拉时会调用这个方法,在里面实现请求数据的逻辑,设置下拉进度条消失等等。

setProgressBackgroundColorSchemeResource(int colorRes)
设置下拉进度条的背景颜色,默认白色。

setRefreshing(boolean refreshing)
设置刷新状态,true表示正在刷新,false表示取消刷新。

布局xml:

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/sw">
            <androidx.recyclerview.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/asd"/>

</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
public class MainActivity extends AppCompatActivity {

    private RecyclerView asd;
    private SwipeRefreshLayout sw;
    Myadapter myadapter;
    List<FoodBean.DataBean> list=new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        //数据请求
        OkGo.<String>get("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1").execute(new StringCallback() {
            @Override
            public void onSuccess(Response<String> response) {
                Gson gson = new Gson();
                FoodBean foodBean = gson.fromJson(response.body(), FoodBean.class);
                list.addAll(foodBean.getData());
                myadapter.notifyDataSetChanged();
            }
        });
        //排布样式
        asd.setLayoutManager(new LinearLayoutManager(this));
        //适配器
        myadapter=new Myadapter(R.layout.item,list);
        asd.setAdapter(myadapter);
        //刷新的监听
        sw.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                sw.setRefreshing(false);
            }
        });
    }

    private void initView() {
        asd = (RecyclerView) findViewById(R.id.asd);
        sw = (SwipeRefreshLayout) findViewById(R.id.sw);
    }
    //适配器
    class Myadapter extends BaseQuickAdapter<FoodBean.DataBean, BaseViewHolder> {
        public Myadapter(int layoutResId, @Nullable List<FoodBean.DataBean> data) {
            super(layoutResId, data);
        }

        @Override
        protected void convert(BaseViewHolder helper, FoodBean.DataBean item) {
            helper.setText(R.id.textView,item.getTitle());
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值