zoukankan      html  css  js  c++  java
  • 官方下拉刷新控件SwipeRefreshLayout的使用

    今天看博客,发现有了这个下拉刷新的控件,效果看上去还蛮好的,于是我也想研究的是使用一下,写个demo。其实使用很简单的,但就是为了能使用这个新组建我下了好久的更新,后来还是直接去官网下载最新的ADT得到解决。

    该控件的完整名字是android.support.v4.widget.SwipeRefreshLayout

    因此在XML文件里,必须使用这个完整的名字,另外这个类似于linearlayout,是作为整个xml文件里的根节点用的。

    <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/srl"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.test.MainActivity$PlaceholderFragment" >
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <TextView
                android:id="@+id/tv_test"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="aaaaaaaaaaa"/>
            </ScrollView>
    </android.support.v4.widget.SwipeRefreshLayout>

    然后在java代码里,只需要获取到这个控件,给这个控件设置一个onRefreshListener即可。

    public static class PlaceholderFragment extends Fragment implements OnRefreshListener {
    
            private SwipeRefreshLayout srl = null;
            
            public PlaceholderFragment() {
            }
    
            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container,
                    Bundle savedInstanceState) {
                View rootView = inflater.inflate(R.layout.fragment_main, container,
                        false);
                srl = (SwipeRefreshLayout) rootView.findViewById(R.id.srl);
                srl.setOnRefreshListener(this);
                srl.setColorScheme(android.R.color.holo_blue_bright,
                        android.R.color.holo_green_light,
                        android.R.color.holo_red_light,
                        android.R.color.holo_orange_light);
                
                return rootView;
            }
    
            @Override
            public void onRefresh() {
                Toast.makeText(getActivity(), "onRefresh", Toast.LENGTH_SHORT).show();
                new Thread(){
    
                    @Override
                    public void run() {
                        try {
                            sleep(3000);
                            srl.setRefreshing(false);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }    
                    }
                }.start();
            }
        }

    最终就可以实现一个不错的下拉刷新的效果,非常的不错,终于不用为写出一个下拉刷新控件而发愁了……

  • 相关阅读:
    Nova官方资料入口处
    LeetCode 有效的数独
    LeetCode 两数之和
    LeetCode 移动零
    安装OpenStack Queens版本的教程推荐
    删除排序数组中的重复项
    (转载)OpenStack client 调用分析
    (转载)基于Linux C的socket抓包程序和Package分析
    Maven的具体使用和优点
    关于 Javascript 学习,有哪些好的博客或者网站推荐?
  • 原文地址:https://www.cnblogs.com/kross/p/3647498.html
Copyright © 2011-2022 走看看