package com.pan.simplepicture.fragment; import in.srain.cube.views.ptr.PtrDefaultHandler; import in.srain.cube.views.ptr.PtrFrameLayout; import in.srain.cube.views.ptr.PtrHandler; import in.srain.cube.views.ptr.header.StoreHouseHeader; import java.util.ArrayList; import android.view.View; import android.widget.ListView; import com.nhaarman.listviewanimations.appearance.simple.RotateBottomAnimationAdapter; import com.pan.simplepicture.ConstantValue; import com.pan.simplepicture.R; import com.pan.simplepicture.activity.BaseActivity; import com.pan.simplepicture.adapter.BaseListAdapter; import com.pan.simplepicture.been.Category; import com.pan.simplepicture.holder.ClassifyHolder; import com.pan.simplepicture.utils.MapUtil; import com.pan.simplepicture.widget.LoadingPage.LoadResult; public class ClassifyFragment extends BaseFragment { private ArrayList<Category> list; private ListView list_categoty; public ClassifyFragment(BaseActivity activity) { super(activity); } @Override protected LoadResult load() { list = MapUtil.getCategory(mActivity); if (list == null) { return LoadResult.ERROR; } if (list.size() <= 0) { return LoadResult.EMPTY; } return LoadResult.SUCCEED; } @Override protected View createLoadedView() { View view = mActivity.inflate(R.layout.fragment_list); list_categoty = (ListView) view.findViewById(R.id.list_categoty); PtrFrameLayout ptrFrameLayout = (PtrFrameLayout) view .findViewById(R.id.fragment_ptr_home_ptr_frame); initPtrFrameLayout(ptrFrameLayout); BaseListAdapter<Category> adapter = new BaseListAdapter<Category>(mActivity, list, ClassifyHolder.class); RotateBottomAnimationAdapter swingBottomInAnimationAdapter = new RotateBottomAnimationAdapter( adapter); swingBottomInAnimationAdapter.setAbsListView(list_categoty); assert swingBottomInAnimationAdapter.getViewAnimator() != null; swingBottomInAnimationAdapter.getViewAnimator().setInitialDelayMillis( ConstantValue.INITIAL_DELAY_MILLIS); list_categoty.setAdapter(swingBottomInAnimationAdapter); return view; } private void initPtrFrameLayout(final PtrFrameLayout ptrFrameLayout) { final StoreHouseHeader header = new StoreHouseHeader(mActivity); header.setPadding(0, mActivity.dip2px(15), 0, mActivity.dip2px(15)); header.initWithString(ConstantValue.PULL_STRING); ptrFrameLayout.setDurationToCloseHeader(2000); ptrFrameLayout.setHeaderView(header); ptrFrameLayout.addPtrUIHandler(header); ptrFrameLayout.setPtrHandler(new PtrHandler() { @Override public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) { return PtrDefaultHandler.checkContentCanBePulledDown(frame, content, header); } @Override public void onRefreshBegin(PtrFrameLayout frame) { ptrFrameLayout.postDelayed(new Runnable() { @Override public void run() { ptrFrameLayout.refreshComplete(); } }, 1500); } }); } }