Fragment + ViewPage的使用

Fragment + ViewPage的使用

fragemt:

  //设置
    mVp = (ViewPager) findViewById(R.id.vp);
    mOrdersAdapter = new OrdersContainerAdapter(getSupportFragmentManager());
    mVp.setAdapter(mOrdersAdapter);
    //设置一个监听
    mVp.addOnPageChangeListener(new JDPagerChangeListener(){
        @Override
        public void onPageSelected(int position) {
            //动态修改指示器
            switch (position){
                case  0 :
                    changeIndicatorView(mAllOrderView);
                    break;
                case  1:
                    changeIndicatorView(mWaitPayView);
                    break;
                case  2 :
                    changeIndicatorView(mWaitReceiveView);
                    break;
                case  3 :
                    changeIndicatorView(mWaitSureView);
                    break;
            }
        }
    });

}
//点击事件
@Override
public void onClick(View view) {
    switch (view.getId()){
        case R.id.all_order_ll:
            mVp.setCurrentItem(0,true);
            break;
        case R.id.wait_pay_ll:
            mVp.setCurrentItem(1,true);
            break;
        case R.id.wait_receive_ll:
            mVp.setCurrentItem(2,true);
            break;
        case R.id.wait_sure_ll:
            mVp.setCurrentItem(3,true);
            break;
    }
}
//动态改变指示器
private void changeIndicatorView(View v){
    mAllOrderView .setVisibility(v==mAllOrderView?View.VISIBLE:View.INVISIBLE);
    mWaitPayView  .setVisibility(v==mWaitPayView?View.VISIBLE:View.INVISIBLE);
    mWaitReceiveView .setVisibility(v==mWaitReceiveView?View.VISIBLE:View.INVISIBLE);
    mWaitSureView .setVisibility(v==mWaitSureView?View.VISIBLE:View.INVISIBLE);
}

ViewPager:

public class OrdersContainerAdapter extends FragmentPagerAdapter {

    private ArrayList<BaseFragment> mFragments=new ArrayList();

    //创建对象
    public OrdersContainerAdapter(FragmentManager fm) {
        super(fm);
        mFragments.add(new AllOrderFragment());
        mFragments.add(new WaitPayFragment());
        mFragments.add(new WaitReceiveFragment());
        mFragments.add(new CompleteOrderFragment());
    }

    @Override
    public int getCount() {
        return mFragments.size();
    }

    @Override
    public Fragment getItem(int position) {
        return mFragments.get(position);
    }

}

猜你喜欢

转载自blog.csdn.net/qq_38605423/article/details/73773919