···-...">
美文网首页我爱编程
下拉刷新SwipeRefreshLayout的使用

下拉刷新SwipeRefreshLayout的使用

作者: Summer_27d1 | 来源:发表于2018-08-07 16:27 被阅读0次
    image.png
    image.png
    image.png

    用法:
    main.xml
    ···
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.lenovo.test_03.MainActivity">
    <android.support.v4.widget.SwipeRefreshLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/swipe"
    >
    <ListView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/listView"
    >
    </ListView>

    </android.support.v4.widget.SwipeRefreshLayout>

    </LinearLayout>

    ···
    --------------MainActivity ------------------
    ···
    package com.example.lenovo.test_03;

    import android.os.Build;
    import android.os.Handler;
    import android.os.Message;
    import android.support.v4.widget.SwipeRefreshLayout;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ListView;
    import android.widget.TextView;

    import java.util.ArrayList;

    public class MainActivity extends AppCompatActivity {
    ListView listView;
    SwipeRefreshLayout swipe;
    MyAdapter adapter;
    ArrayList<String>array=new ArrayList<>();
    ArrayList<String> datalist=new ArrayList<>();
    int index=20; //最开始加载的数据
    Handler hand=new Handler(){
    @Override
    public void handleMessage(Message msg) {
    if (msg.what==1){
    adapter.notifyDataSetChanged();
    swipe.setRefreshing(false);//刷新完毕 ,图标消失
    }
    }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
    }
    
    private void init() {
        for (int i = 0; i <100 ; i++) {
            array.add("我是数据:"+i);
    
        }
        for (int i = 0; i < 20; i++) {
            datalist.add(array.get(i));
        }
        swipe = (SwipeRefreshLayout) findViewById(R.id.swipe);
        swipe.setSize(SwipeRefreshLayout.DEFAULT);//设置加载默认图标
       swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
           @Override
           public void onRefresh() {
               int indexMax = index + 20;
               for (int i = index; i < indexMax; i++) {
                   datalist.add(array.get(i));
               }
               index = indexMax;
               hand.sendEmptyMessageDelayed(1,3000);
           }
       });
        if (Build.VERSION.SDK_INT>=23){
            swipe.setProgressBackgroundColorSchemeColor(
                    getResources().getColor(android.R.color.holo_orange_light,getTheme()));
            swipe.setColorSchemeColors(//刷新控件动画中的颜色
                    getResources().getColor(android.R.color.holo_blue_dark,getTheme()),
                    getResources().getColor(android.R.color.holo_red_dark,getTheme()),
                    getResources().getColor(android.R.color.holo_green_dark,getTheme())
            );
        }
        listView= (ListView) findViewById(R.id.listView);
        adapter=new MyAdapter();
        listView.setAdapter(adapter);
    }
    class  MyAdapter extends BaseAdapter{
    
        @Override
        public int getCount() {
            return datalist.size();
        }
    
        @Override
        public Object getItem(int i) {
            return datalist.get(i);
        }
    
        @Override
        public long getItemId(int i) {
            return 0;
        }
    
        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            TextView textView = new TextView(MainActivity.this);
            textView.setTextSize(22);
            //判断兼容版本是否是6.0以上
            if (Build.VERSION.SDK_INT>=23){
                textView.setTextColor(getResources().getColor(android.R.color.holo_green_dark,
                        //getTheme()获取当前Activity主题
                        getTheme()));
            }else {
    

    // textView.setTextColor(getColor(android.R.color.holo_green_dark));

            }
            textView.setText(datalist.get(i));
            return textView;
        }
    }
    

    }
    ···
    效果图:


    image.png

    相关文章

      网友评论

        本文标题:下拉刷新SwipeRefreshLayout的使用

        本文链接:https://www.haomeiwen.com/subject/zcsavftx.html