package com.example.testpulltorefreshdemo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
/**
* 测试google SwipeLayout
*
* @author Ming
* @date 2015年6月17日 下午2:42:17
*/
public class ActivitySwipeRefreshLayout extends AppCompatActivity {
private static final String BUNDLE_KEY_NAME="BUNDLE_KEY_NAME";
private static final String BUNDLE_KEY_POSITION="BUNDLE_KEY_POSITION";
private SwipeRefreshLayout swipeRefreshLayout;
private TextView mTextView;
private ListView mListView;
private List<Map<String,String>> mList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_swipe_refresh_layout);
initView();
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
private void initView() {
mTextView = (TextView) findViewById(R.id.textView1);
swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);
// 设置刷新时动画的颜色,可以设置4个
swipeRefreshLayout.setColorSchemeResources(
android.R.color.holo_blue_light,
android.R.color.holo_red_light,
android.R.color.holo_orange_light,
android.R.color.holo_green_light);
swipeRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh() {
refreshView();
}
});
initListViewControl();
mListView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView arg0, int arg1) {
switch(arg1){
case OnScrollListener.SCROLL_STATE_IDLE:
if(mListView.getFirstVisiblePosition()==0){
swipeRefreshLayout.setEnabled(true);
}else{
swipeRefreshLayout.setEnabled(false);
}
break;
}
}
@Override
public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) {
if(arg1!=0){
swipeRefreshLayout.setEnabled(false);
}
}
});
}
/**
* 初始化ListView
* @Description:
* @author Ming
* @date 2015年6月17日 下午3:03:02
*/
private void initListViewControl(){
mListView=(ListView) findViewById(R.id.listview);
mList=new ArrayList<Map<String,String>>();
for (int Loop = 0; Loop <20; Loop++) {
Map<String,String> mMap=new HashMap<String, String>();
mMap.put(BUNDLE_KEY_NAME, "MaoManito"+Loop);
mMap.put(BUNDLE_KEY_POSITION, "Position"+Loop);
mList.add(mMap);
}
SimpleAdapter mAdapter=new SimpleAdapter(getApplicationContext(), mList, android.R.layout.simple_list_item_2,new String[]{BUNDLE_KEY_NAME,BUNDLE_KEY_POSITION}, new int[]{android.R.id.text1,android.R.id.text2});
mListView.setAdapter(mAdapter);
}
/**
* 刷新View
* @Description:
* @author Ming
* @date 2015年6月17日 下午3:13:18
*/
private void refreshView(){
List<Map<String,String>> mList1=new ArrayList<Map<String,String>>();
for (int i = 0; i < 10; i++) {
Map<String,String> mMap=new HashMap<String, String>();
mMap.put(BUNDLE_KEY_NAME, "Add------MaoManito"+i);
mMap.put(BUNDLE_KEY_POSITION, "Add--Position"+i);
mList1.add(mMap);
}
mList.addAll(mList1);
SimpleAdapter mAdapter=new SimpleAdapter(getApplicationContext(), mList, android.R.layout.simple_list_item_2,new String[]{BUNDLE_KEY_NAME,BUNDLE_KEY_POSITION}, new int[]{android.R.id.text1,android.R.id.text2});
mListView.setAdapter(mAdapter);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mTextView.setText("刷新完成");
swipeRefreshLayout.setRefreshing(false);
}
}, 3000);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_swipe_refresh_layout, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
使用Android Supportv4 SwipeRefreshLayout有关ListView滑动冲突问题
最新推荐文章于 2021-11-25 14:19:09 发布