2、Android自己的下拉刷新SwipeRefreshLayout--样式2
Android -- 自己 样式 刷新
2023-09-14 09:00:21 时间
<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>
3 import java.lang.reflect.Field;
4 import java.util.ArrayList;
5 import android.annotation.SuppressLint;
6 import android.app.Activity;
7 import android.os.Bundle;
8 import android.os.Handler;
9 import android.support.v4.widget.SwipeRefreshLayout;
10 import android.util.DisplayMetrics;
11 import android.view.View;
12 import android.view.ViewTreeObserver;
13 import android.widget.ListView;
14
15 public class MainActivity extends Activity implements
16 SwipeRefreshLayout.OnRefreshListener {
17
18 private SwipeRefreshLayout swipeLayout;
19 private ListView listView;
20 private ListViewAdapter adapter;
21 private ArrayList<JavaBean> list;
22 private int number = 0;
23
24 protected void onCreate(Bundle savedInstanceState) {
25 super.onCreate(savedInstanceState);
26
27 setContentView(R.layout.activity_main);
28
29 swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);
30 swipeLayout.setOnRefreshListener(this);
31 swipeLayout.setColorScheme(android.R.color.holo_blue_bright,
32 android.R.color.holo_green_light,
33 android.R.color.holo_orange_light,
34 android.R.color.holo_red_light);
35
36 ViewTreeObserver vto = swipeLayout.getViewTreeObserver();
37 vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
38 @SuppressLint("NewApi")
39 public void onGlobalLayout() {
40 final DisplayMetrics metrics = getResources()
41 .getDisplayMetrics();
42 Float mDistanceToTriggerSync = Math.min(
43 ((View) swipeLayout.getParent()).getHeight() * 0.6f,
44 500 * metrics.density);
45 try {
46 Field field = SwipeRefreshLayout.class
47 .getDeclaredField("mDistanceToTriggerSync");
48 field.setAccessible(true);
49 field.setFloat(swipeLayout, mDistanceToTriggerSync);
50 } catch (Exception e) {
51 e.printStackTrace();
52 }
53
54 ViewTreeObserver obs = swipeLayout.getViewTreeObserver();
55 obs.removeOnGlobalLayoutListener(this);
56 }
57 });
58
59 list = new ArrayList<JavaBean>();
60 list.add(new JavaBean(0, "Item0"));
61 listView = (ListView) findViewById(R.id.list);
62 adapter = new ListViewAdapter(this, list);
63 listView.setAdapter(adapter);
64 }
65
66 public void onRefresh() {
67 new Handler().postDelayed(new Runnable() {
68 public void run() {
69 swipeLayout.setRefreshing(false);
70 list.add(new JavaBean(++number, "Item" + number));
71 adapter.notifyDataSetChanged();
72 }
73 }, 1000);
74 }
75 }
相关文章
- [Android] adb shell dumpsys的使用
- cocos2d-x 3.0 bata for android环境配置
- 《Android进阶之光》--事件总线
- 《android开发艺术探索》读书笔记(二)--IPC机制
- Android实训案例(二)——Android下的CMD命令之关机重启以及重启recovery
- 图片--android 图片占用内存与什么有关
- 转--android Toast大全(五种情形)建立属于你自己的Toast
- html5--移动端视频video的android兼容,去除播放控件、全屏等
- Android studio 提示“android qemu-system-i386.exe停止工作”
- macos安装android studio(Android Studio 2021.1.1)
- android 7.1 添加应用包白名单功能
- Android 4.4 如何禁止显示通知
- Rockchip_Introduction_Android_Box_Display_Framework_Configuration
- Android【报错】This class should be public (android.support.v7.internal.widget.ActionBarView.HomeView)
- Android Glide的占位符和错误显示
- Android的报错提示:Failed to resolve: com.android.support.test.espresso:espresso-core:3.0.2
- Android 常有的Utils工具类总结
- 【Android 逆向】获取安装在手机中的应用的 APK 包 ( 进入 adb shell | 获取 root 权限 | 进入 /data/app/ 目录 | 拷贝 base.apk 到外置存储 )
- 【Android 插件化】VirtualAppEx 编译运行 ( VirtualAppEx 简介 | 配置 VirtualAppEx 编译环境 | 编译运行 VirtualAppEx 代码 )
- 编译Android VNC Server(pc远程控制android)(四十九)
- pc机进入android的shell
- Android -- Looper.prepare()和Looper.loop() —深度版
- Android 开发 --Unable to resolve target 'android-19'
- Android抽屉(SlidingDrawer --类似android通知栏下拉效果)