viewpage+fragment禁止预加载

public abstract class BaseChildOrderListFragment extends BaseFragment{
	
	public  boolean isVisible;//fragment是否可见
	
	@Override
	public void setUserVisibleHint(boolean isVisibleToUser) {
		super.setUserVisibleHint(isVisibleToUser);
		if(getUserVisibleHint()) {
			isVisible = true;
			visible();
		} else {
			isVisible = false;
		}
	}
	
	@Override
	public void onAttach(Activity activity) {
		super.onAttach(activity);
	}
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	}
	@Override
	public void onActivityCreated(Bundle savedInstanceState) {
		super.onActivityCreated(savedInstanceState);
	}
	
	private void visible(){
		requestList();
	}
	
	public abstract void requestList() ;

}
public class OrderManagerChildFragment extends BaseChildOrderListFragment {
	
	private final static String TAG = OrderManagerChildFragment.class.getName();
	
	/**
	 *  状态
	 * 	Unconfirmed                待确认
	 *	UnPay                      待付款
	 *	Payed                      待发货
	 *	Finished                   已完成
	 *	Canceled                   已取消
	 */
	private String mStatus;
	
	/**
	 * 查询方案
	 * 
	 * orderSource  整数型             (0:全部 1:门店,2:线上)
	 */
	private String  mOrderSource;
	
	private int mPageIndex = 0;
	private int mPageCount;
	private List<OrderEntity> mList;
	
	
	@ViewInject(id = R.id.ordermanagerlistview)
	PullToRefreshListView mListView;
	
	private ListView listView;
	
	/**
	 * 内容为空显示ui
	 */
	@ViewInject(id = R.id.orderlist_empty)
	TextView mEmptyView;
	
	
	
	private NewOrderListAdapter mOrderListAdapter = null ;
	
	private int dex;
	
	/**
	 * 加载模式 1 标识刷新 2 标识 加载更多
	 */
	private int loadType = 2;
	
	//第一次加载数据
	private boolean iSfirstLoad = true;
	
	//数据为空
	View emptyFooterView;

	public OrderManagerChildFragment(String status,String orderSource,int dex){
		mStatus = status;
		mOrderSource = orderSource;
		this.dex = dex;
	}
	
	private View rootView = null;
	
	private boolean isPrepare;//做好准备
	private boolean hasLoad = false;//是否加载过 
	
	@Override
	public View onCreateView(LayoutInflater inflater,
			@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
		mActivity = this.getActivity();
		
		if (rootView == null) {
			rootView = inflater.inflate(R.layout.ordermanagerchildfragment_layout, container, false);
			FinalActivity.initInjectedView(this, rootView);
			
			mList = new ArrayList<OrderEntity>();
			mOrderListAdapter = new NewOrderListAdapter(getActivity(), mList,mStatus,mOrderSource);
		
			SwingBottomInAnimationAdapter swingRightInAnimationAdapter = new SwingBottomInAnimationAdapter(mOrderListAdapter);
			swingRightInAnimationAdapter.setAbsListView(mListView.getRefreshableView());
			mListView.getRefreshableView().setAdapter(swingRightInAnimationAdapter);
			
			mListView.setMode(Mode.BOTH);
			//mListView.setAdapter(mOrderListAdapter);
			mListView.setOnRefreshListener(listener2);
			mListView.setOnItemClickListener(orderItemClickListener);
			
			listView = mListView.getRefreshableView();
			
			isPrepare = true;
			requestList();
		}
		
		//Log.i("## dex", "---------onCreateView------"+dex);
		
		ViewGroup parent = (ViewGroup)rootView.getParent();
		if(parent != null) {
			parent.removeView(rootView);
		}
		
		return rootView;
	}
	
	OnRefreshListener2<ListView> listener2 = new OnRefreshListener2<ListView> (){
		
		//刷新
		@Override
		public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
			
			hasLoad = false;//这样标志可以加载数据了
			
			loadType = 1;
			mPageIndex = 0;
			
			if (mList.size() > 0) {
				mList.clear();
			}
			
			requestList();
		}

		//加载更多
		@Override
		public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
			
			hasLoad = false;
			
			loadType = 2;
			requestList();
		}			
	};
	
	OnItemClickListener orderItemClickListener = new OnItemClickListener() {
		@Override
		public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
			
			OrderEntity entity = (OrderEntity) parent.getItemAtPosition(position);
			if (null == entity) {
				return;
			}
			
			Intent intent = new Intent(mActivity, OnlineOrderCRUDActivity.class);
			intent.putExtra("orderid", entity.id);//订单id
			intent.putExtra("orderSource", entity.orderSource);//来源
			mActivity.startActivity(intent);
			//mActivity.overridePendingTransition(R.anim.activity_left_in, R.anim.activity_left_out);
		}
	};
	
	
	/**
	 * 
	 * 列表请求
	 * 
	 */
	@Override
	public void requestList() {
		//Log.i(TAG, "---当前页--"+dex+"----isPrepare----"+ isPrepare +"----isVisible---"+isVisible+"------hasLoad----"+"----"+hasLoad);
		
		if (!isPrepare || !isVisible || hasLoad) {
			return;
		}
		
		if (iSfirstLoad) {
			showDialog();
			iSfirstLoad = false;
		}
		
		
		AjaxParams params = new AjaxParams();
		params.put("token", SPUtil.getDefault(getActivity()).getToken());
		params.put("storeId", SPUtil.getDefault(getActivity()).getStoreId());
		params.put("pageSize", 15+"");
		params.put("orderSource", mOrderSource);
		params.put("status", mStatus);
		params.put("pageIndex", (++mPageIndex) + "");
		
		Callback callback = new Callback(tag,getActivity()) {
			
			@Override
			public void onSuccess(String t) {
				super.onSuccess(t);
				try{
					hasLoad = true;
					if (mListView.isRefreshing()) {
						mListView.onRefreshComplete();
					}
					dimissDialog();
					if (isSuccess) {
						mPageIndex = data.get("pageIndex").getAsInt();
						mPageCount = data.get("pageCount").getAsInt();
						Log.i(TAG, "## mPageIndex == " + mPageIndex);
						Log.i(TAG, "## mPageCount == " + mPageCount);
						JsonArray dataArray = data.get("records").getAsJsonArray();

						if (dataArray.size() > 0) {
							Gson gson = new Gson();
							List<OrderEntity> tempList = gson.fromJson(dataArray,
									new TypeToken<List<OrderEntity>>() {}.getType());
							mList.addAll(tempList);
							mOrderListAdapter.setList(mList);
							mOrderListAdapter.notifyDataSetChanged();
						}


						if (mList.size() == 0) {

							listView.removeFooterView(emptyFooterView);
							emptyFooterView = LayoutInflater.from(getActivity()).inflate(R.layout.emptyview_layout, null);
							listView.addFooterView(emptyFooterView);
						}else{
							listView.removeFooterView(emptyFooterView);
						}

						if (mPageIndex >= mPageCount) {
							mListView.setMode(Mode.PULL_FROM_START);
						}else {
							mListView.setMode(Mode.BOTH);
						}

					}else {
						if (data.has("msg")){
							String msgStr = data.get("msg").getAsString();
							showToast(msgStr);
						}

					}

					if (loadType == 1) {
						loadType = 2;//重置为加载更多模式
					}

				}catch (Exception exception){
					exception.printStackTrace();
				}
			}
			
			@Override
			public void onFailure(Throwable t, int errorNo, String strMsg) {
				super.onFailure(t, errorNo, strMsg);
				hasLoad = false;
				dimissDialog();
			}
		};
		
		CommonFinalHttp finalHttp = new CommonFinalHttp();
		finalHttp.get(Server.BASE_URL + Server.ORDER_MANAGER_LIST, params, callback);
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ViewPage Fragment 是 Android 中的一个工具类,用于在一个 Activity 中显示多个 Fragment,并且可以通过滑动来切换不同的 Fragment。仿微信的话,可以使用 ViewPage Fragment 来实现类似微信的主界面,其中每个 Fragment 分别对应微信的不同功能模块。 首先,我们可以创建一个主界面的 Activity,该 Activity 包含一个 ViewPage,用于显示不同的 Fragment。然后,创建多个 Fragment,每个 Fragment 分别负责显示微信的不同功能模块,比如聊天列表、联系人列表、发现等。 在每个 Fragment 中,可以使用 RecyclerView 来展示列表数据,并根据不同的业务需求进行相应的逻辑处理。比如,在聊天列表中,可以显示每个聊天会话的头像、昵称、最近一条消息等信息,并通过点击监听实现跳转到聊天界面的功能。 另外,可以为每个 Fragment 添加相应的菜单选项,仿微信的底部导航栏,用于在不同的 Fragment 之间进行切换。通过监听导航栏的点击事件,并配合 ViewPage 的滑动,可以实现类似微信的切换效果。 此外,可以通过 FragmentManager 来管理 Fragment 的生命周期,并实现 Fragment 之间的通信。比如,在聊天界面中发送一条消息后,可以通过调用 FragmentManager 的方法刷新聊天列表界面,并更新最近一条消息的显示。 总而言之,使用 ViewPage Fragment 可以很方便地实现一个仿微信的界面,通过不同的 Fragment 展示不同的功能模块,使用户可以在同一个 Activity 中进行多个功能的切换和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值