zoukankan      html  css  js  c++  java
  • android下拉刷新控件 android-pulltorefresh

    运行效果:

    介绍:ListViewViewPagerWevViewExpandableListViewGridView(Horizontal)ScrollViewFragment上下左右拉动刷新。并且他实现的下拉刷新ListViewitem不足一屏情况下也不会显示刷新提示,体验更好。

    项目地址:https://github.com/chrisbanes/Android-PullToRefresh 其中sample为例子,可以加入Exlipse运行查看效果

    或者例子Apk地址:https://github.com/Trinea/TrineaDownload/blob/master/pull-to-refreshview-demo.apk?raw=true

    使用步骤:

    1.引用包导入:fileImport...Existing Android Code Into Workspacenext→只需要导入文件library即可→finish

    补充:android studio参考文档:http://drakeet.me/android-studio

    举例:filenewImport Module...→只需要导入文件library即可→在需要应用该包的项目中(注意点:不是导入的包中,是你APP的项目)build.gradledependencies{}中添加 compile project(':library') 语句,其中library是你导入文件的名字

     

    2.开始运用:布局文件xml中添加标签

    列子:com.handmark.pulltorefresh.library.PullToRefreshListView

    包名:com.handmark.pulltorefresh.library固定

    Activity中运用

    参数:

    private PullToRefreshListView lv;
        private String[] mListTitle = {"姓名", "性别", "年龄", "居住地", "邮箱"};
        private String[] mListStr = {"雨松MOMO", "男", "25", "北京","xuanyusong@gmail.com"};
        ArrayList<Map<String, Object>> mData = new ArrayList<Map<String, Object>>();

    然后补充ListView数据:

    int lengh = mListTitle.length;
    for (int i = 0; i < lengh; i++) {
        Map<String, Object> item = new HashMap<String, Object>();
        item.put("title", mListTitle[i]);
        item.put("text", mListStr[i]);
        mData.add(item);
    }

    ListView适配器添加跟刷新设置

    SimpleAdapter adapter = new SimpleAdapter(this, mData, android.R.layout.simple_list_item_2,
                    new String[]{"title", "text"}, new int[]{android.R.id.text1, android.R.id.text2});
            lv=(PullToRefreshListView)findViewById(R.id.list);
            lv.setAdapter(adapter);
            lv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
                @Override
                public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                    // TODO Auto-generated method stub
                    new AsyncTask<Void, Void, Void>() {
                        @Override
                        protected Void doInBackground(Void... params) {
                            // 处理刷新任务
                            try {
                                Thread.sleep(3000);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                            return null;
                        }
                        @Override
                        protected void onPostExecute(Void reslst)
                        {
                            // 更行内容,通知 PullToRefresh 刷新结束
                            lv.onRefreshComplete();
                        }
                    }.execute();
                }
            });
    
            //设置PullRefreshListView上提加载时的加载提示
            lv.getLoadingLayoutProxy(true, false).setPullLabel("下拉刷新...");
            lv.getLoadingLayoutProxy(true, false).setRefreshingLabel("正在刷新...");
            lv.getLoadingLayoutProxy(true, false).setReleaseLabel("松开刷新...");
  • 相关阅读:
    Codeforces Round #388(div 2)
    Codeforces Round #387(div 2)
    Codeforces Round #386(div 2)
    Codeforces Round #385(div 2)
    Codeforces Round #384(div 2)
    Wannafly Union Goodbye 2016
    写在2016的最后一天——给未来的自己
    2016HDU校赛
    2016BUAA校赛决赛
    codevs 1344 模拟退火
  • 原文地址:https://www.cnblogs.com/minyc/p/myc201602181103.html
Copyright © 2011-2022 走看看