您的位置:首页 > 编程语言 > Go语言

Google下拉刷新-原生源码

2015-09-09 09:46 603 查看
android 实现下拉刷新有很多开源的源码可以用 比如 :PullToRefreshListView 使用起来也很方便

现在还可以直接使用google 自带的下拉刷新效果更加炫丽。不过需要你自己更新到最新的sdk才可使用。

下面来看看刷新的效果吧:



下面来看实现:(activity_main.xml)

<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swipe_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </ListView>

</android.support.v4.widget.SwipeRefreshLayout>


ListViewAdapter.java

package com.zihao.swiperefreshlayoutdemo;

import java.util.ArrayList;

import com.storm.swiperefreshlayoutdemo.R;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class ListViewAdapter extends BaseAdapter {

	/** 环境信息 **/
	private Context context;
	/** 用户中心信息集合 **/
	private ArrayList<SoftwareClassificationInfo> list;

	/** 构造方法 **/
	public ListViewAdapter(Context context, ArrayList<SoftwareClassificationInfo> list) {
		this.context = context;
		this.list = list;
	}

	public int getCount() {
		// TODO Auto-generated method stub
		return list.size();
	}

	public Object getItem(int arg0) {
		// TODO Auto-generated method stub
		return null;
	}

	public long getItemId(int arg0) {
		// TODO Auto-generated method stub
		return 0;
	}

	public View getView(int position, View convertView, ViewGroup arg2) {
		_View view = null;
		if (convertView == null) {
			view = new _View();
			convertView = LayoutInflater.from(context).inflate(R.layout.user_center_list_item, null);
			view.list_text = (TextView) convertView.findViewById(R.id.user_center_item_txt);
			view.list_img = (ImageView) convertView.findViewById(R.id.user_center_item_img);
			convertView.setTag(view);
		} else {
			view = (_View) convertView.getTag();
		}
		view.list_text.setText(list.get(position).getCatname());
		view.list_img.setBackgroundDrawable(context.getResources().getDrawable(
				R.drawable.tool_box_fragment_settings_icon));
		return convertView;
	}

	class _View {
		TextView list_text;
		ImageView list_img;
	}

}
SoftwareClassificationInfo.java
package com.zihao.swiperefreshlayoutdemo;

/**
 * 用户中心List列表信息
 * 
 * @author Administrator
 * 
 */
public class SoftwareClassificationInfo {
	/** 分类编号 **/
	private int cid;
	/** 分类名字 **/
	private String catname;

	public int getCid() {
		return cid;
	}

	public void setCid(int cid) {
		this.cid = cid;
	}

	public String getCatname() {
		return catname;
	}

	public void setCatname(String catname) {
		this.catname = catname;
	}

	public SoftwareClassificationInfo() {
		// TODO Auto-generated constructor stub
	}

	public SoftwareClassificationInfo(int cid, String catname) {
		// TODO Auto-generated constructor stub
		this.cid = cid;
		this.catname = catname;
	}
}


user_center_list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="45.0dip"
    android:background="@drawable/tool_box_fragment_bg_selector" >

    <TextView
        android:id="@+id/user_center_item_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="21.0dip"
        android:drawablePadding="20.0dip"
        android:gravity="center"
        android:singleLine="true"
        android:text="asdsa"
        android:textColor="#ffccccc6"
        android:textSize="16.0sp"
        android:textStyle="bold" />

    <ImageView
        android:id="@+id/user_center_item_img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10.0dip"
        android:contentDescription="asda"
        android:src="@drawable/tool_box_fragment_settings_icon" />

</RelativeLayout>


最后来看看:MainActivity.java

package com.zihao.swiperefreshlayoutdemo;

import java.util.ArrayList;

import com.storm.swiperefreshlayoutdemo.R;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.widget.ListView;

public class MainActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener {

	private SwipeRefreshLayout swipeLayout;
	private ListView listView;
	private ListViewAdapter adapter;
	private ArrayList<SoftwareClassificationInfo> list;

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);
		swipeLayout.setOnRefreshListener(this);
		swipeLayout.setColorScheme(android.R.color.holo_blue_bright, android.R.color.holo_green_light,
				android.R.color.holo_orange_light, android.R.color.holo_red_light);

		list = new ArrayList<SoftwareClassificationInfo>();
		list.add(new SoftwareClassificationInfo(1, "asdas"));
		listView = (ListView) findViewById(R.id.list);
		adapter = new ListViewAdapter(this, list);
		listView.setAdapter(adapter);
	}

	public void onRefresh() {
		new Handler().postDelayed(new Runnable() {
			public void run() {
				swipeLayout.setRefreshing(false);
				list.add(new SoftwareClassificationInfo(2, "ass"));
				adapter.notifyDataSetChanged();
			}
		}, 1000);
	}
}


效果就实现了,你也来试试吧!

下载地址如下:

http://download.csdn.net/detail/hehaiminginadth/9090923
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: