2、Android自己的下拉刷新SwipeRefreshLayout--样式2

<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 }
时间: 2024-07-30 12:33:19

2、Android自己的下拉刷新SwipeRefreshLayout--样式2的相关文章

android自带下拉刷新SwipeRefreshLayout

也是一个布局容器,只有一个子组件,类似scrollView <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent&qu

1、Android自己的下拉刷新SwipeRefreshLayout

1 <android.support.v4.widget.SwipeRefreshLayout 2 xmlns:android="http://schemas.android.com/apk/res/android" 3 android:id="@+id/swipe_container" 4 android:layout_width="match_parent" 5 android:layout_height="match_par

Android -- 官方下拉刷新SwipeRefreshLayout

V4的兼容包 API 大概就这4个常用的方法. code 布局 <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="matc

安卓自带下拉刷新SwipeRefreshLayout添加上拉刷新功能

在项目里面要用到刷新库,以前都是使用第三方的,不过看到官方出了  SwipeRefreshLayout之后就用SwipeRefreshLayout,但是不知道什么原因官方SwipeRefreshLayout只提供下拉刷新功能,很多时候我们需要上拉刷新功能,所以下载v4源码修改SwipeRefreshLayout,与之相关联的文件有两个分别是SwipeProgressBar,BakedBezierInterpolator把这三个文件拷贝到项目里面,修改一下包名就可以了.如何实现上拉刷新功能,其

下拉刷新 SwipeRefreshLayout

把想要实现下拉刷新的控件放在SwipeRefreshLayout中,就可以直接支持下拉刷新 <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipe_refresh" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="

android控件 下拉刷新pulltorefresh

外国人写的下拉刷新控件,我把他下载下来放在网盘,有时候访问不了github 支持各种控件下拉刷新 ListView.ViewPager.WevView.ExpandableListView.GridView.(Horizontal )ScrollView.Fragment上下左右拉动刷新,比下面johannilsson那个只支持ListView的强大的多.并且他实现的下拉刷新ListView在item不足一屏情况下也不会显示刷新提示,体验更好. 国内网盘地址:http://www.400gb.c

Android UI- PullToRrefresh自定义下拉刷新动画

Android UI- PullToRrefresh自定义下拉刷新动画 如果觉得本文不错,麻烦投一票,2014年博客之星投票地址:http://vote.blog.csdn.net/blogstar2014/details?username=wwj_748#content 本篇博文要给大家分享的是如何使用修改开源项目PullToRrefresh下拉刷新的动画,来满足我们开发当中特定的需求,我们比较常见的一种下拉刷新样式可能是以下这种: 就是下拉列表的时候两个箭头上下翻转,更改日期文本和刷新状态,

Android中实现下拉刷新

需求:项目中的消息列表界面要求实现类似sina微博的下拉刷新: 思路:一般的消息列表为ListView类型,将list加载到adapter中,再将adapter加载到 ListView中,从而实现消息列表的展示.而下拉刷新要求给消息列表加一个头部,其中有图片(向上/向下箭头)和提示字样(下拉刷新/松开刷新),从 而我们需要做的事情:1.需要做一个head.xm来实现头部的样式定义:2.需要自定义一个继承了ListView的MsgListView,在该类中 将head加在MsgListView对象

Android自定义ListView下拉刷新

实现的目标是本地有数据并没有刷新.下拉数据及时刷新数据. 我在网上找了某位写的MyListView,这个东西的下拉核心部分还是没有弄明白.非常感谢这位作者. XML布局文件源代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layou

Android原生下拉刷新SwipeRefreshLayout实践

本篇文章翻译自Ravi Tamada的Android Swipe Down to Refresh ListView Tutorial 首先来看一下效果图 你应该发现许多的android app例如Twitter,Google+都提供了一个下拉刷新数据的功能,只要用户从上往下滑动,新的内容就会加载出来,这篇文章我们将学习如何开发出同样的功能. 1.Android SwipeRefreshLayout 实现SwipeRefreshLayout非常容易,我们将SwipeRefreshLayout作为根