安卓基础(十六)
拉出一个小东西
目标人群:没有基础的安卓初学者
知识点:在Android Studio中使用support V4包来实现下拉刷新的效果
目标:在页面上实现下拉刷新功能
简介
support V4包的导入
SwipeRefreshLayout类的简单使用
正文
1.首先我们需要在build.gradle中添加对support V4包的引用,代码如下
dependencies {
...
compile ‘com.android.support:support-v4:21.0.3‘
...
}
- 也可以在项目中选择Open Module Settings-Dependencies-点击右侧加号-Library Dependency-选中appcompat-V4来进行添加
2.创建一个Activity页面并使其实现android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener接口,代码如下
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
public class MainActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onRefresh() {
//当处于刷新状态时需要执行的加载数据代码,此处略
}
}
3.创建一个包含SwipeRefreshLayout控件的布局,代码如下
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipe_refresh_widget"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/content" />
</android.support.v4.widget.SwipeRefreshLayout>
SwipeRefreshLayout 通常作为布局中的根控件存在,但是并非是必须的
为了避免使用过程中出现异常, SwipeRefreshLayout 内部应当有子控件存在
4.回到Activity中,对SwipeRefreshLayout 进行初始化,并模拟下拉刷新的过程,代码如下:
private SwipeRefreshLayout refreshLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//下拉刷新控件
refreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_widget);
//刷新过程中的颜色展示
refreshLayout.setColorSchemeResources(R.color.red, R.color.blue, R.color.green,
R.color.yellow);
//指定接听回调接口
refreshLayout.setOnRefreshListener(this);
//文字显示控件
}
@Override
public void onRefresh() {
//延迟2000毫秒,模拟数据加载
new Handler().postDelayed(new Runnable() {
public void run() {
refreshLayout.setRefreshing(false);
Toast.makeText(MainActivity.this, "加载完成", Toast.LENGTH_LONG).show();
}
}, 2000);
}
- 想禁用SwipeRefreshLayout的手势下拉以及动画效果的话,调用setEnabled(false) 方法即可
扩展阅读
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。