美化Android下拉刷新

package com.yalantis.taurus.sample;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import com.yalantis.taurus.PullToRefreshView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class PullToRefreshActivity extends AppCompatActivity {

public static final int REFRESH_DELAY = 4000;

private PullToRefreshView mPullToRefreshView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pull_to_refresh);

    Map<String, Integer> map;
    List<Map<String, Integer>> sampleList = new ArrayList<>();


    int[] colors = {
            R.color.saffron,
            R.color.eggplant,
            R.color.sienna};

    int[] tripNames = {
            R.string.trip_to_india,
            R.string.trip_to_italy,
            R.string.trip_to_indonesia};

    for (int i = 0; i < tripNames.length; i++) {
        map = new HashMap<>();
        map.put(SampleAdapter.KEY_NAME, tripNames[i]);
        map.put(SampleAdapter.KEY_COLOR, colors[i]);
        sampleList.add(map);
    }

    ListView listView = (ListView) findViewById(R.id.list_view);
    listView.setAdapter(new SampleAdapter(this, R.layout.list_item, sampleList));

    mPullToRefreshView = (PullToRefreshView) findViewById(R.id.pull_to_refresh);
    mPullToRefreshView.setOnRefreshListener(new PullToRefreshView.OnRefreshListener() {
        @Override
        public void onRefresh() {
            mPullToRefreshView.postDelayed(new Runnable() {
                @Override
                public void run() {
                    mPullToRefreshView.setRefreshing(false);
                }
            }, REFRESH_DELAY);
        }
    });
}

class SampleAdapter extends ArrayAdapter<Map<String, Integer>> {

    public static final String KEY_NAME = "name";
    public static final String KEY_COLOR = "color";

    private final LayoutInflater mInflater;
    private final List<Map<String, Integer>> mData;

    public SampleAdapter(Context context, int layoutResourceId, List<Map<String, Integer>> data) {
        super(context, layoutResourceId, data);
        mData = data;
        mInflater = LayoutInflater.from(context);
    }

    @Override
    public View getView(final int position, View convertView, @NonNull ViewGroup parent) {
        final ViewHolder viewHolder;
        if (convertView == null) {
            viewHolder = new ViewHolder();
            convertView = mInflater.inflate(R.layout.list_item, parent, false);
            viewHolder.textViewName = (TextView) convertView.findViewById(R.id.text_view_name);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }

        viewHolder.textViewName.setText(mData.get(position).get(KEY_NAME));
        convertView.setBackgroundResource(mData.get(position).get(KEY_COLOR));

        return convertView;
    }

    class ViewHolder {
        TextView textViewName;
    }

}

}
借鉴自jq22

原文地址:https://www.cnblogs.com/2506236179zhw/p/14926431.html