2、Android自己的下拉刷新SwipeRefreshLayout--样式2
2016-03-02 12:23
393 查看
<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" /> </android.support.v4.widget.SwipeRefreshLayout>
import java.lang.reflect.Field; import java.util.ArrayList; import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.support.v4.widget.SwipeRefreshLayout; import android.util.DisplayMetrics; import android.view.View; import android.view.ViewTreeObserver; import android.widget.ListView; public class MainActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener { private SwipeRefreshLayout swipeLayout; private ListView listView; private ListViewAdapter adapter; private ArrayList<JavaBean> list; private int number = 0; 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); ViewTreeObserver vto = swipeLayout.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @SuppressLint("NewApi") public void onGlobalLayout() { final DisplayMetrics metrics = getResources() .getDisplayMetrics(); Float mDistanceToTriggerSync = Math.min( ((View) swipeLayout.getParent()).getHeight() * 0.6f, 500 * metrics.density); try { Field field = SwipeRefreshLayout.class .getDeclaredField("mDistanceToTriggerSync"); field.setAccessible(true); field.setFloat(swipeLayout, mDistanceToTriggerSync); } catch (Exception e) { e.printStackTrace(); } ViewTreeObserver obs = swipeLayout.getViewTreeObserver(); obs.removeOnGlobalLayoutListener(this); } }); list = new ArrayList<JavaBean>(); list.add(new JavaBean(0, "Item0")); 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 JavaBean(++number, "Item" + number)); adapter.notifyDataSetChanged(); } }, 1000); } }
相关文章推荐
- Android RecyclerView 使用完全解析 体验艺术般的控件
- Android开发:Activity Lifecycle
- Android获取屏幕的实际分辨率
- 1、Android自己的下拉刷新SwipeRefreshLayout
- service启动activity同时需要得到activity里的某个对象实现方法
- Intent与Activity
- android 简单实现透明栏
- Android: ImageLoader must be init with configuration before using
- 从Android Handler内部类到WeakReference的知识关联
- Android自定义控件—仿仪表盘进度控件ArcProgressBar
- 关于ListView中使用GestureDetector冲突的解决办法
- 真机运行android遭遇Wait for debugging
- Android代码内存优化建议-Android官方篇
- 浅谈android 四大组件 以及mvc mvp
- Android之ListView下拉刷新和上拉加载实现详解(含源码Demo)
- Android Studio之Eclipse工程代码搬家
- <手机控>开发过程记录
- AIDL导入Android Studio
- Android ExpandableListView的基本使用
- Android动画学习笔记-Android Animation