package com.tekinarslan.material.sample.fragment;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v7.widget.RecyclerView;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.TextView;
import com.tekinarslan.material.sample.R;
import com.tekinarslan.material.sample.customui.SwipeRefreshLayoutLoad;
import java.util.ArrayList;
/**
* Created by vic on 2015/5/12.
*/
public class SwipRefreshLoadFragment extends Fragment{
private static final String ARG_POSITION = "position";
private int position;
private final static String TAG = "MainActivity";
private SwipeRefreshLayoutLoad mSwipeRefreshLayoutLoad;
private ListView mListView;
private android.widget.ArrayAdapter<String> mArrayAdapter;
private ArrayList<String> values;
public static SwipRefreshLoadFragment newInstance(int position) {
SwipRefreshLoadFragment f = new SwipRefreshLoadFragment();
Bundle b = new Bundle();
b.putInt(ARG_POSITION, position);
f.setArguments(b);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
position = getArguments().getInt(ARG_POSITION);
View rootView = inflater.inflate(R.layout.fragment_swiperefresh_load_layout, container, false);
setRefreshList(rootView);
return rootView;
}
private void setRefreshList(View layoutView) {
mSwipeRefreshLayoutLoad = (SwipeRefreshLayoutLoad)layoutView.findViewById(R.id.swipe_container);
mListView = (ListView) layoutView.findViewById(R.id.list);
mSwipeRefreshLayoutLoad.setFooterView(getActivity(), mListView, R.layout.listview_footer);
values = new ArrayList<>();
for (int i = 0; i < 15; i++) {
values.add("Item " + i);
}
mArrayAdapter = new android.widget.ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, values);
mListView.setAdapter(mArrayAdapter);
mSwipeRefreshLayoutLoad.setColorSchemeResources(R.color.google_blue,
R.color.google_green,
R.color.google_red,
R.color.google_yellow);
// mSwipeRefreshLayoutLoad.setRefreshing(true);
mSwipeRefreshLayoutLoad.setOnRefreshListener(new SwipeRefreshLayoutLoad.OnRefreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
values.add(0, "Swipe Down to Refresh " + values.size());
mArrayAdapter.notifyDataSetChanged();
mSwipeRefreshLayoutLoad.setRefreshing(false);
}
}, 2000);
}
});
mSwipeRefreshLayoutLoad.setOnLoadListener(new SwipeRefreshLayoutLoad.OnLoadListener() {
@Override
public void onLoad() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
values.add("Swipe Up to Load More " + values.size());
mArrayAdapter.notifyDataSetChanged();
mSwipeRefreshLayoutLoad.setLoading(false);
}
}, 2000);
}
});
mSwipeRefreshLayoutLoad.setProgressViewOffset(false, 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, getResources().getDisplayMetrics()));
mSwipeRefreshLayoutLoad.setRefreshing(true);
}
static class ArrayAdapter extends RecyclerView.Adapter<ViewHolder>{
private String[] mArray;
private Context mContext;
public ArrayAdapter(Context context, String[] array) {
mContext = context;
mArray = array;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
return new ViewHolder(View.inflate(viewGroup.getContext(), android.R.layout.simple_list_item_1, null));
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
viewHolder.mTextView.setText(mArray[i]);
}
@Override
public int getItemCount() {
return mArray.length;
}
}
static class ViewHolder extends RecyclerView.ViewHolder{
public TextView mTextView;
public ViewHolder(View itemView) {
super(itemView);
mTextView = (TextView) itemView;
}
}
}