Andorid5.0原生下拉刷新简单实现

来源:互联网 发布:pano2vr.js 域名限制 编辑:程序博客网 时间:2024/06/06 01:03


相对于上一个19.1.0版本中的横条效果好看了很多。可惜没有上拉加载,等我研究好了再发。

  • MainActivity布局文件
<RelativeLayout 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:id="@+id/swipe"        android:layout_width="match_parent"        android:layout_height="match_parent">        <ListView            android:id="@+id/lv"            android:layout_width="match_parent"            android:layout_height="match_parent">        </ListView>    </android.support.v4.widget.SwipeRefreshLayout></RelativeLayout>


  • listview中的item布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content">    <ImageView        android:id="@+id/iv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="10dp"        android:src="@android:mipmap/sym_def_app_icon"/>    <TextView        android:id="@+id/tv"        android:layout_toRightOf="@id/iv"        android:layout_centerVertical="true"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="ffff"/></RelativeLayout>


  • MainActivity
package com.example.sa.swiperefreshlayout.activity;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.widget.SwipeRefreshLayout;import android.view.Window;import android.widget.ListView;import com.example.sa.swiperefreshlayout.R;import com.example.sa.swiperefreshlayout.adapter.MyAdapter;import java.util.ArrayList;import java.util.List;public class MainActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener{    private SwipeRefreshLayout swipe;    private ListView lv;    private List<String> datas;    private MyAdapter adapter;    public Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            switch (msg.what) {                case 0:                    swipe.setRefreshing(false);                    adapter.notifyDataSetChanged();                    break;                default:                    break;            }            super.handleMessage(msg);        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_main);        // 加载布局        swipe = (SwipeRefreshLayout) findViewById(R.id.swipe);        lv = (ListView) findViewById(R.id.lv);        datas = new ArrayList<String>();        for (int i = 0; i < 3; i++) {            datas.add("item" + i);        }        adapter = new MyAdapter(this, datas);        lv.setAdapter(adapter); // 绑定Adapter        swipe.setOnRefreshListener(this); // 设置下拉刷新监听        swipe.setColorSchemeResources(android.R.color.holo_orange_dark,                android.R.color.holo_green_light,                android.R.color.holo_orange_light,                android.R.color.holo_red_light); // 设置刷新时的颜色变化    }    @Override    public void onRefresh() {        new Thread(new Runnable() {            @Override            public void run() {                datas.add("refresh>>>>>");                handler.sendEmptyMessageDelayed(0,3000);            }        }).start();    }}


  • Adapter

package com.example.sa.swiperefreshlayout.adapter;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.example.sa.swiperefreshlayout.R;import java.util.List;/** * Created by sa on 2016/1/18. */public class MyAdapter extends BaseAdapter{    private Context mContext;    private List<String> mList;    private viewHolder holder;    public MyAdapter(Context context, List<String> datas) {        mContext = context;        mList = datas;    }    @Override    public int getCount() {        return mList.size();    }    @Override    public Object getItem(int position) {        return position;    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        if (convertView == null) {            holder = new viewHolder();            convertView = View.inflate(mContext, R.layout.item, null);            holder.iv = (ImageView) convertView.findViewById(R.id.iv);            holder.tv = (TextView) convertView.findViewById(R.id.tv);            convertView.setTag(holder);        } else {            holder = (viewHolder) convertView.getTag();        }        holder.tv.setText(mList.get(position)); // item设值        return convertView;    }    class viewHolder{        ImageView iv;        TextView tv;    }}


1 0
原创粉丝点击