SwipeRefreshLayout的基本使用「建议收藏」

SwipeRefreshLayout的基本使用「建议收藏」SwipeRefreshLayout的基本使用简介SwipRefreshLayout是谷歌前一段时间推出的一款下拉刷新控件。常用方法方法解释setColorSchemeResources(int…colorReslds)设置下拉进度条的颜色主题,参数可变,并且是资源id,最多设置四种不同的颜色。setProgressBackgroundSchemeResource(intcoloRes)设置下拉进度条的背景颜色,默认白色。isRefreshing()判断当前的

大家好,又见面了,我是你们的朋友全栈君。

SwipeRefreshLayout的基本使用

简介

SwipRefreshLayout是谷歌前一段时间推出的一款下拉刷新控件。

常用方法

方法 解释
setColorSchemeResources(int…colorReslds) 设置下拉进度条的颜色主题,参数可变,并且是资源id,最多设置四种不同的颜色。
setProgressBackgroundSchemeResource(int coloRes) 设置下拉进度条的背景颜色,默认白色。
isRefreshing() 判断当前的状态是否是刷新状态。
setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener) 设置监听,需要重写onRefresh()方法,顶部下拉时会调用这个方法,在里面实现请求数据的逻辑,设置下拉进度条消失等等。
setRefreshing(boolean refreshing) 设置刷新状态,true表示正在刷新,false表示取消刷新。

使用

1.首先在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

dependencies {
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
   
}

2.在xml文件里面添加相关代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent">

    <android.support.v4.widget.SwipeRefreshLayout>
        
    </android.support.v4.widget.SwipeRefreshLayout>

</LinearLayout>

3.添加布局代码

<?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/swipeLayout">
    <ListView android:id="@+id/aa" android:layout_width="match_parent" android:layout_height="match_parent"/>
    </android.support.v4.widget.SwipeRefreshLayout>

在这里插入图片描述
4.setColorSchemeResources(int…colorReslds),可以改变下拉刷新时的颜色

public class MainActivity extends AppCompatActivity { 
   
    private SwipeRefreshLayout swipeRefreshLayout;
    @SuppressLint("ResourceAsColor")
    @Override
    protected void onCreate(Bundle savedInstanceState) { 
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);
        SwipeRefreshLayout swip_refresh_layout=findViewById(R.id.swipeLayout);
        swip_refresh_layout.setColorSchemeResources(R.color.colorPrimary);
    }

在这里插入图片描述

5.setProgressBackgroundSchemeResource(int coloRes),设置下拉进度的背景颜色

public class MainActivity extends AppCompatActivity { 
   
    private SwipeRefreshLayout swipeRefreshLayout;
    @SuppressLint("ResourceAsColor")
    @Override
    protected void onCreate(Bundle savedInstanceState) { 
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);
        SwipeRefreshLayout swip_refresh_layout=findViewById(R.id.swipeLayout);
        swip_refresh_layout.setColorSchemeResources(R.color.colorPrimary);      swip_refresh_layout.setProgressBackgroundColorSchemeColor(R.color.colorPrimaryDark);
    }

在这里插入图片描述

6.setRefreshing(boolean refreshing)设置刷新状态,false代表停止执行

swip_refresh_layout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 
   
    @Override
    public void onRefresh() { 
   
        new Handler().postDelayed(new Runnable() { 
   
            @Override
            public void run() { 
   
                swip_refresh_layout.setRefreshing(false);
            }
        },2000);
    }
});

在这里插入图片描述
7.全部整理好后,再加上几个item,完整的代码如下

package com.example.swiperefreshlayout;

import androidx.appcompat.app.AppCompatActivity;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity { 
   
    private SwipeRefreshLayout swipeRefreshLayout;
    private String[] names = new String[]
            { 
   "Lion","Tiger","Monkey","Dog","Cat","Elephant"};
    @SuppressLint("ResourceAsColor")
    @Override
    protected void onCreate(Bundle savedInstanceState) { 
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);
        //创建list集合
        ListView list = findViewById(R.id.aa);
        List<Map<String,Object>> listItems =
                new ArrayList<>();
        for (int i=0;i<names.length;i++)
        { 
   
            Map<String,Object> listItem =new HashMap<>();
            listItem.put("names",names[i]);
            listItems.add(listItem);
        }
        SimpleAdapter simpleAdapter=new SimpleAdapter(this,listItems,R.layout.item,
                new String[]{ 
   "names"}
                ,new int[]{ 
   R.id.names});
        list.setAdapter(simpleAdapter);
        //SwipeRefreshLayout功能介绍
        final SwipeRefreshLayout swip_refresh_layout=findViewById(R.id.swipeLayout);
        swip_refresh_layout.setColorSchemeResources(R.color.colorPrimary);
        swip_refresh_layout.setProgressBackgroundColorSchemeColor(R.color.colorPrimaryDark);
        swip_refresh_layout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 
   
            @Override
            public void onRefresh() { 
   
                new Handler().postDelayed(new Runnable() { 
   
                    @Override
                    public void run() { 
   
                        swip_refresh_layout.setRefreshing(false);
                    }
                },2000);
            }
        });
    }


}

item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent">
    <TextView android:id="@+id/names" android:layout_width="match_parent" android:layout_height="70dp" android:paddingLeft="10dp" android:layout_marginTop="5dp" android:textColor="@color/colorPrimaryDark" android:textSize="30dp" />
</LinearLayout>

layout.xml

<?xml version="1.0" encoding="utf-8"?>
    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/swipeLayout">

        <ListView android:id="@+id/aa" android:layout_width="match_parent" android:layout_height="74dp" />

    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

在这里插入图片描述

可能会遇到的错误

1.Error inflating class android.support.v4.widget.SwipeRefreshLayout

解决:android.support.v4.widget.SwipeRefreshLayout改为androidx.swiperefreshlayout.widget.SwipeRefreshLayout

参考

参考一
参考二

作者:胡恒娟
原文链接:https://blog.csdn.net/hhj98/article/details/106679237

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152918.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • PHP json_decode[通俗易懂]

    PHP json_decode[通俗易懂]json_decode(PHP5>=5.2.0,PECLjson>=1.2.0)json_decode — 对JSON格式的字符串进行编码说明 ¶mixed json_decode ( string $json [, bool $assoc =false [, int $depth =512 [, int $options =0 

  • RowBounds分页原理、RowBounds的坑

    RowBounds分页原理、RowBounds的坑背景说明项目中经常会使用分页查询,有次使用了RowBounds进行分页,因为很多场景或网上也看到很多这样的写法,所以我也在项目中使用了该类进行分页。但是有次线上却抛了异常,由此引发了对RowBounds原理的探究。一:RowBounds分页原理Mybatis可以通过传递RowBounds对象,来进行数据库数据的分页操作,然而遗憾的是,该分页操作是对ResultSet结果集进行分页,也就是人们常说的逻辑分页,而非物理分页(物理分页当然就是我们在sql语句中指定limit和offset值)。RowBou

  • MATLAB GUI设计之弹出式菜单的使用

    MATLAB GUI设计之弹出式菜单的使用弹出式菜单在MATLABGUI设计中常常出现。比如串口助手、绘制图形等经常见到弹出式菜单如下图所示:使用方法:一、准备工作1、从MATLABGUIDE中拖出一个弹出式菜单2、双击这个弹出式菜单,出现检查器:将注意力放在途中红线位置处,点击string处的图标将其中的内容修改为你想要显示的内容:tag处的内容修改为自己想管这个弹出式菜单的名字。这里就按照原来

  • mapstate映射数组名(逆映射)

    mapState映射可以将State中的数据yourName映射到本地this.yourName,使用之前要将相应的文件引入state:页面组件:原本使用state中数据的方法:使用mapState之后:除了使用这种数组的方式,mapState里面也可以放一个对象意思是将公用数据中的city映射到此组件中的计算属性currentCity中…

  • 【MYSQL】如何下载mysql驱动jar包

    【MYSQL】如何下载mysql驱动jar包进入官网https://www.mysql.com/点击DOWNLOADS然后拉到最下面,点击MySQLCommunity(GPL)Downloads然后选择Connector/J,这里的J是Java的意思这里如果是windows用户的话,选择PlatformIndependent,如果是其他用户就选其他版本点击Download…

  • poe交换机供电原理图_poe供电原理详解

    poe交换机供电原理图_poe供电原理详解POE指的是在现有的以太网Cat.5布线基础架构不作任何改动的情况下,在为一些基于IP的终端(如IP电话机、无线局域网接入点AP、网络摄像机等)传输数据信号的同时,还能为此类设备提供直流电的技术.就是支持以太网供电的交换机。那么,POE交换机的供电原理及工作过程是什么呢?接下来我们就跟随飞畅科技的小编一起来详细了解下吧!POE交换机供电原理标准的五类网线有四对双绞线,但是在10MBASE-T和100MBASE-T中只用到其中的两对。IEEE802.3af允许两种用法,应用空闲脚供电时,4、5脚连

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号