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)
blank

相关推荐

  • luajit vs php7,Luajit编译

    luajit vs php7,Luajit编译2、找到VC编译命令行,以VS2019为例,分别位于C:\ProgramData\Microsoft\Windows\StartMenu\Programs\VisualStudio019\VisualStudioTools\VC\x64NativeToolsCommandPromptforVS2019C:\ProgramData\Microsoft\Windows\Star…

  • 【Custom Mutator Fuzz】简单Protobuf使用练习

    【Custom Mutator Fuzz】简单Protobuf使用练习前面两篇文章中已经讲解了protobuf的结构以及生成代码的分析,这篇文章简单的介绍一下protobuf的使用。这里主要跟着libprotobuf-mutator_fuzzing_learning项目进行结构感知模糊测试练习

  • java 各种架构图汇总

    java 各种架构图汇总java 各种架构图汇总

  • tess4j linux so文件,linux上安装tess4j项目「建议收藏」

    tess4j linux so文件,linux上安装tess4j项目「建议收藏」本文主要介绍了linux上安装tess4j项目,通过具体的解释说明,让我们从中学到linux上安装tess4j项目的精髓所在,让我们对Linux内部原理越来越熟悉,希望大家能够在以后的学习中更加快速的弄明白其中的关键。便于更好的操作。linuxtesseract安装及部署tess4j项目会遇到一些的问题,总结如下:在windows上项目是可以正常运行的,部署到Linux上后,运行报异常,异常内…

  • BackTrack3(BT3激活成功教程wifi密码)

    BackTrack3(BT3激活成功教程wifi密码)BackTrack3(BT3激活成功教程)  准备工作  1、一个有可激活成功教程无线信号的环境。如我在家随便搜索出来的信号。  2、带无线网卡的电脑一台(笔记本台式机均可,只要无线网卡兼容BT3),我用的是三星NC10的上网本。  3、4G以上优盘一个(我用的是kingston8G的)  4、下载BT3,约900多兆。注:BT3全称BackTrack3,与我们常说的bt下载是完全不同的…

  • pytorch安装-国内镜像源

    pytorch安装-国内镜像源在安装好cuda和cudnn之后安装pytorch的方法网上很多的方法都不是镜像下载,或者镜像下载因为系统的问题找不到库打开官网,找到对应合适的版本(cuda):https://pytorch.org/get-started/locally/之后复制下面这一行指令:condainstallpytorchtorchvisiontorchaudiocudatoolkit=11.0-cpytorch接下来就是关键一步了,把-cpytorch表示的pytorch源,更改为国内的镜像。

发表回复

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

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