Android简单实现下拉刷新和上拉刷新

来源:互联网 发布:淘宝卖家常用app 编辑:程序博客网 时间:2024/06/06 12:37

先把布局文件里面添加一个ListView控件,

<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="com.xh.tx.listviewfresh.MainActivity" >    <ListView        android:id="@+id/listview"        android:layout_width="match_parent"        android:layout_height="wrap_content" >    </ListView></RelativeLayout>
用setOnScrollListener调用刷新,

package com.xh.tx.listviewfresh;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.widget.AbsListView;import android.widget.AbsListView.OnScrollListener;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity extends Activity {private ListView lv;private ArrayList<String> date;private ArrayAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv = (ListView) findViewById(R.id.listview);date = new ArrayList<String>();for (int i = 0; i < 30; i++) {date.add("测试数据" + i);}adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, date);lv.setAdapter(adapter);lv.setOnScrollListener(new OnScrollListener() {private int firstVisibleItem, visibleItemCount, totalItemCount;@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {if (firstVisibleItem == 0) {addTop();}if(firstVisibleItem+visibleItemCount==totalItemCount){adddate();}}}@Overridepublic void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {this.firstVisibleItem = firstVisibleItem;this.visibleItemCount = visibleItemCount;this.totalItemCount = totalItemCount;Log.i("", firstVisibleItem+"-----"+visibleItemCount+"-----"+totalItemCount);}});}//下拉刷新private void addTop() {date.add(0, "上面追加数据" + (date.size() + 1));adapter.notifyDataSetChanged();}//上拉刷新private void adddate(){date.add("下面追加数据" + (date.size() + 1));adapter.notifyDataSetChanged();}}
实现如下图:下拉刷新图:

上拉刷新图:

0 0
原创粉丝点击