SwipeRefreshLayout基本使用
来源:互联网 发布:评论盖楼的数据库设计 编辑:程序博客网 时间:2024/05/29 18:51
在android的support.V4包中,提供了一个下拉刷新的控件:SwipeRefreshLayout。使用该控件可以实现知乎上的下拉刷新效果。首先来看一下这个类的继承关系。
从这个继承关系,可以看到SwipeRefreshLayout是一个ViewGroup,这个ViewGroup只有一个子view,便是我们需要刷新的控件。下面是一个简单的例子演示一下如何使用该控件。
布局文件:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swiperefresh" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="wrap_content" /> </android.support.v4.widget.SwipeRefreshLayout></RelativeLayout>
主actiivty.java
package com.gearmotion.app.swiperefreshlayoutmotion;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.widget.SwipeRefreshLayout;import android.support.v7.app.AppCompatActivity;import android.widget.ArrayAdapter;import android.widget.ListView;import java.util.ArrayList;import java.util.List;import butterknife.Bind;import butterknife.ButterKnife;public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener { //使用butterknife这个框架来初始化view,可以省去一系列的findeviewbyId()方法的调用 @Bind(R.id.swiperefresh) SwipeRefreshLayout mSwipeRefreshLayout; @Bind(R.id.listview) ListView mListView; private List<String> mData; private ArrayAdapter<String> mAdapter; private static final int FLAG = 0x01; private Handler mHandler = new Handler() { @Override public void dispatchMessage(Message msg) { int what = msg.what; if (what == FLAG) { mData.add("fruit"); mAdapter.notifyDataSetChanged(); //处理完事物之后必须调用该函数,取消加载动画 mSwipeRefreshLayout.setRefreshing(false); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); initData(); bindData(); } private void initData() { mData = new ArrayList<String>(); mData.add("apple"); mData.add("pear"); mData.add("watermelon"); mData.add("orange"); mData.add("banana"); } private void bindData() { mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, mData); mListView.setAdapter(mAdapter); //设置监听事件 mSwipeRefreshLayout.setOnRefreshListener(this); } @Override public void onRefresh() { Message msg = Message.obtain(); msg.what = FLAG; //延长动画效果 mHandler.sendMessageDelayed(msg, 4000); }}
实现的效果如下:
0 0
- SwipeRefreshLayout基本使用
- SwipeRefreshLayout 的基本使用
- SwipeRefreshLayout基本使用和冲突解决机制
- SwipeRefreshLayout 使用
- SwipeRefreshLayout使用
- SwipeRefreshLayout 使用
- SwipeRefreshLayout使用
- SwipeRefreshLayout使用
- Android:官方下拉刷新——SwipeRefreshLayout基本使用
- Android SwipeRefreshLayout基本用法
- SwipeRefreshLayout基本用法
- SwipeRefreshLayout基本使用方法
- swipeRefreshLayout基本用法
- Android SwipeRefreshLayout 使用
- SwipeRefreshLayout 使用问题小结
- SwipeRefreshLayout简单使用
- SwipeRefreshLayout使用心得
- CoordinatorLayout、SwipeRefreshLayout的使用
- margin和padding的区别
- Unity抛物线AddForce计算
- [转] A trip through the Graphics Pipeline
- Deep learning加速之Theano的安装和GPU的配置
- 深入javascript-实现“继承”
- SwipeRefreshLayout基本使用
- Apache性能优化、超时设置,linux 重启apache
- 友善之臂第二个裸板驱动蜂鸣器程序
- poj2449(第k短路)
- MFC网络编程
- HttpClient与HttpURLConnection的区别(理论与实践结合)
- Linux-CentOS 安装MP4Box
- Jq 下拉框chosen之后,动态改变dropdown的数据
- 笔记124--WebView