PullToRefresh

来源:互联网 发布:淘宝代购店铺推荐 编辑:程序博客网 时间:2024/04/27 14:56

注意点
① 加了PullToRefresh的ListView,第一个item的下标应该是 1,0被刷新占了。
通过mPullToRefreshListView.onRefreshComplete()停止加载动画(通过handler处理,直接调用好像不起作用)
依赖库地址 http://pan.baidu.com/disk/home#list/path=%2Fandroid%2F%E7%AC%AC%E4%B8%89%E6%96%B9jar%20%E5%8C%85
更多介绍 张鸿洋 http://blog.csdn.net/lmj623565791/article/details/38238749/

public class MainActivity extends Activity {    private PullToRefreshListView mPullToRefreshListView;    private ListView lv;    private ArrayAdapter<String>adapter;    private List<String>mItemList;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mPullToRefreshListView = (PullToRefreshListView)findViewById(R.id.id_pull_lv);        lv = mPullToRefreshListView.getRefreshableView();        mItemList = new ArrayList<String>();        initData();        mPullToRefreshListView.setMode(Mode.BOTH);        mPullToRefreshListView.setOnRefreshListener(new OnRefreshListener2<ListView>() {            @Override            public void onPullDownToRefresh(                //下拉刷新执行的方法                    PullToRefreshBase<ListView> refreshView) {                Log.i("tag", "下拉刷新执行的方法");                handler.sendEmptyMessageAtTime(1, 1000);            }            @Override            public void onPullUpToRefresh(                    PullToRefreshBase<ListView> refreshView) {  //上拉加载执行的方法                new GetDataTask().execute();            }        });    }

设置刷新样式

改变旋转图标<com.handmark.pulltorefresh.library.PullToRefreshGridView         ptr:ptrDrawable="@drawable/ic_launcher"         ...         />  当然了这是旋转的效果,一般常用的还有,一个箭头倒置的效果,其实也很简单,一个属性:ptr:ptrAnimationStyle="flip"去掉 ptr:ptrDrawable="@drawable/ic_launcher"这个属性,如果你希望用下图默认的箭头,你也可以自定义。添加后,箭头就是这个样子:ptr:ptrAnimationStyle的取值:flip(翻转动画), rotate(旋转动画) 。 ptr:ptrDrawable则就是设置图标了**设置刷新字体**private void initIndicator()      {          ILoadingLayout startLabels = mPullRefreshListView                  .getLoadingLayoutProxy(true, false);          startLabels.setPullLabel("你可劲拉,拉...");// 刚下拉时,显示的提示          startLabels.setRefreshingLabel("好嘞,正在刷新...");// 刷新时          startLabels.setReleaseLabel("你敢放,我就敢刷新...");// 下来达到一定距离时,显示的提示          ILoadingLayout endLabels = mPullRefreshListView.getLoadingLayoutProxy(                  false, true);          endLabels.setPullLabel("你可劲拉,拉2...");// 刚下拉时,显示的提示          endLabels.setRefreshingLabel("好嘞,正在刷新2...");// 刷新时          endLabels.setReleaseLabel("你敢放,我就敢刷新2...");// 下来达到一定距离时,显示的提示      }  

属性设置

<com.handmark.pulltorefresh.library.PullToRefreshListView            xmlns:ptr="http://schemas.android.com/apk/res-auto"            android:id="@+id/lv"            android:layout_width="match_parent"            android:layout_height="match_parent"            ptr:ptrHeaderTextColor="@android:color/background_dark">         </com.handmark.pulltorefresh.library.PullToRefreshListView><!--     ptrRefreshableViewBackground 设置整个mPullRefreshListView的背景色 --><!-- ptrHeaderBackground 设置下拉Header或者上拉Footer的背景色 --><!-- ptrHeaderTextColor 用于设置Header与Footer中文本的颜色 --><!-- ptrHeaderSubTextColor 用于设置Header与Footer中上次刷新时间的颜色 --><!-- ptrShowIndicator如果为true会在mPullRefreshListView中出现icon,右上角和右下角,挺有意思的。 --><!-- ptrHeaderTextAppearance , ptrSubHeaderTextAppearance分别设置拉Header或者上拉Footer中字体的类型颜色等等。 --><!-- ptrRotateDrawableWhilePulling当动画设置为rotate时,下拉是是否旋转。 --><!-- ptrScrollingWhileRefreshingEnabled刷新的时候,是否允许ListView或GridView滚动。觉得为true比较好。 --><!-- ptrListViewExtrasEnabled 决定了Header,Footer以何种方式加入mPullRefreshListView,true为headView方式加入,就是滚动时刷新头部会一起滚动。 -->
0 0
原创粉丝点击