package in.srain.cube.demo.ui.fragment; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import in.srain.cube.demo.R; import in.srain.cube.views.list.ListViewDataAdapter; import in.srain.cube.views.list.ViewHolderBase; import in.srain.cube.views.list.ViewHolderCreator; import in.srain.cube.views.ptr.PtrFrameLayout; import in.srain.cube.views.ptr.PtrDefaultHandler; import in.srain.cube.views.ptr.PtrClassicFrameLayout; import java.util.ArrayList; public final class TestFragment extends Fragment { private ArrayList<String> mStringList = new ArrayList<String>(); public static TestFragment newInstance(String content) { TestFragment fragment = new TestFragment(); for (int i = 0; i < 20; i++) { fragment.mStringList.add(content); } return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_pager_tab_indicator, container, false); view.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); ListView listView = (ListView) view.findViewById(R.id.lv_frg_pager_tab); final ListViewDataAdapter<String> listViewDataAdapter = new ListViewDataAdapter<String>(); ViewHolderCreator<String> viewHolderCreator = new ViewHolderCreator<String>() { @Override public ViewHolderBase<String> createViewHolder(int position) { // create different ViewHolder according the view type int type = listViewDataAdapter.getItemViewType(position); return new ViewHolder(); } }; listViewDataAdapter.setViewHolderCreator(viewHolderCreator); listView.setAdapter(listViewDataAdapter); listViewDataAdapter.getDataList().addAll(mStringList); listViewDataAdapter.notifyDataSetChanged(); final PtrClassicFrameLayout frame = (PtrClassicFrameLayout) view.findViewById(R.id.frame_frg_pager_tab); frame.setPtrHandler(new PtrDefaultHandler() { @Override public void onRefreshBegin(final PtrFrameLayout frame) { frame.postDelayed(new Runnable() { @Override public void run() { frame.refreshComplete(); } }, 1000); } }); return view; } private class ViewHolder extends ViewHolderBase<String> { private TextView mTextView; @Override public View createView(LayoutInflater layoutInflater) { mTextView = new TextView(getActivity()); return mTextView; } @Override public void showData(int position, String itemData) { mTextView.setText(itemData); } } }