swipRefreshLayout的使用在于它的几种参数的设定,以及相关的配置(如颜色、用时等)
在此简单介绍一下这个布局
首先在主活动的布局中将布局改为swipRefreshLayout,并添加一个listview,通过下拉刷新来获取新的项目添加到listview中。
<?xml version="1.0" encoding="utf-8"?>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/fresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
接着我们在MainActivity中对这个布局以及其中的listview进行相关的配置
package com.game.freshlayout;
import androidx.appcompat.app.AppCompatActivity;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
SwipeRefreshLayout swipeRefreshLayout ;
ListView listView;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
swipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.fresh);//获取swipeRefreshLayout
listView = (ListView)findViewById(R.id.list_view);//获取listview
final List<String> datalist= new ArrayList<>();//定义字符串适配器数组
//生成30个listview
for(int i =0;i<30;i++){
datalist.add(i+"");//通过datalist的add方法来添加
}
//对适配器进行声明
final ArrayAdapter<String>adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_2,android.R.id.text1,datalist);
listView.setAdapter(adapter);//对listview进行适配
//刷新事件配置(大体上和点击事件的设置差不多)
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//当数据被加载到view时设为false
swipeRefreshLayout.setRefreshing(false);
//当加载完成时会跳出提示
Toast.makeText(MainActivity.this, "完成加载", Toast.LENGTH_SHORT).show();
//加载完成后出现的新项目
for(int i=0;i<20;i++){
datalist.add("新加的数据"+i);//通过datalist的add方法来添加
}
adapter.notifyDataSetChanged();//通知listview更新数据,完成数据的添加
}
},5000);//设定延时为五秒
}
});
//设定颜色变换
swipeRefreshLayout.setColorSchemeColors(Color.RED,Color.GREEN,Color.BLUE,Color.CYAN);
//设定加载旋转图标的上下高度
swipeRefreshLayout.setProgressViewOffset(false,100,100);
}
}
可以看到由于这里我们用listview来获取动态添加的项目,因此我们使用适配器来进行添加。