Android TabLayout+ViewPage

java文件

package com.qsyy.liveassistant.view.activity.personal;
import android.support.design.widget.TabLayout;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.qsyy.liveassistant.R;
import com.qsyy.liveassistant.contract.person.PersonalContract;
import com.qsyy.liveassistant.model.entity.Level;
import com.qsyy.liveassistant.presenter.login.PersonalPresenter;
import com.qsyy.liveassistant.widget.base.BaseActivity;
import java.util.ArrayList;
import java.util.List;
import rx.Subscriber;

/**
 * Created by huxiubo on 2017/8/29.
 *
 * 个人的各种他妈的主页
 * 分三个部分
 *   1)头部view,包括头像昵称等信息
 *   2)各种数据
 *   3)各种曲线图
 *
 *
 */

public class IncomePersonalDataActivity extends BaseActivity implements PersonalContract.View, ViewPager.OnPageChangeListener, TabLayout.OnTabSelectedListener {
    @ViewInject(R.id.view_base_id)
    private View baseView;

    private ImageView backView;

    @ViewInject(R.id.tabLayout)
    private TabLayout tabLayout;

    @ViewInject(R.id.viewPager)
    private ViewPager viewPager;

    /**页卡视图集合*/
    private List mViewList = new ArrayList<>();
    private LayoutInflater mInflater;

    /**
     * 个人类型
     * 1、好友主页
     * 2、我的二级主播个人主页
     * 3、我的数据主页
     * 4、我的一级主播个人主页
     * 5、一级主播个人主页
     * 6、直属主播个人主页
     */
    private int type = 2;
    private MyPagerAdapter mAdapter;

    /**
     * 页卡标题集合
     * */
    private List mTitleList = new ArrayList<>();

    private PersonalContract.Presenter mPresenter;


    @Override
    public int layoutID() {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        return R.layout.activity_income_personal;
    }

    @Override
    public void init() {
        backView = (ImageView) baseView.findViewById(R.id.iv_personal_back);
        setOnClickListener();

        mInflater = LayoutInflater.from(this);
        loadView();

        mAdapter = new MyPagerAdapter(mViewList);
        viewPager.setAdapter(mAdapter);
        tabLayout.setupWithViewPager(viewPager);

        mPresenter = new PersonalPresenter(this, this);
        mPresenter.getUserLevel("aaa", new Subscriber() {
            @Override
            public void onCompleted() {

            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onNext(Level level) {

            }
        });
    }

    private void loadView() {
        switch (type) {
            case 1:
                View view1 = mInflater.inflate(R.layout.view1, null);
                View view2 = mInflater.inflate(R.layout.view2, null);
                mViewList.add(view1);
                mViewList.add(view2);
                mTitleList.add("主播");
                mTitleList.add("好友");
                break;
            case 2:
            case 4:
                View view3 = mInflater.inflate(R.layout.view1, null);
                View view4 = mInflater.inflate(R.layout.view2, null);
                View view5 = mInflater.inflate(R.layout.income_data_layout, null);

                mViewList.add(view3);
                mViewList.add(view4);
                mViewList.add(view5);

                mTitleList.add("数据");
                mTitleList.add("主播");
                mTitleList.add("好友");
                break;
            case 3:
            case 5:
                View view6 = mInflater.inflate(R.layout.view1, null);
                View view7 = mInflater.inflate(R.layout.view2, null);
                View view8 = mInflater.inflate(R.layout.income_data_layout, null);

                mViewList.add(view6);
                mViewList.add(view7);
                mViewList.add(view8);

                mTitleList.add("昨日");
                mTitleList.add("7日");
                mTitleList.add("30日");
                break;
            case 6:
                View view9 = mInflater.inflate(R.layout.view1, null);
                View view10 = mInflater.inflate(R.layout.view2, null);
                mViewList.add(view9);
                mViewList.add(view10);

                mTitleList.add("收益");
                mTitleList.add("主播");
                break;
        }
    }

    private void setOnClickListener() {
        backView.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        int id = v.getId();
        switch (id) {
            case R.id.rl_left_click:
                finish();
                break;
        }
    }


    @Override
    public void setPresenter(PersonalContract.Presenter presenter) {
        mPresenter = presenter;
    }

    private void checkBtn(int checkPos) {
        switch (checkPos) {
            case 0:
//                attentionLiveFragment.reqAttentionLiveList();
//                mParepareLive.setVisibility(View.INVISIBLE);
                break;
            case 1:
//                mParepareLive.setVisibility(View.VISIBLE);
        }
        viewPager.setCurrentItem(checkPos);
    }

    private void checkBtn(TabLayout.Tab tab) {
        int checkPos = 0;
        if (tab == tabLayout.getTabAt(0)) {
            checkPos = 0;
        } else if (tab == tabLayout.getTabAt(1)) {
            checkPos = 1;
        }
        checkBtn(checkPos);
    }

    @Override
    public void onTabSelected(TabLayout.Tab tab) {
        checkBtn(tab);
    }

    @Override
    public void onTabUnselected(TabLayout.Tab tab) {

    }

    @Override
    public void onTabReselected(TabLayout.Tab tab) {

    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int position) {
        checkBtn(position);
    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }

    class MyPagerAdapter extends PagerAdapter {
        private List mViewList;

        public MyPagerAdapter(List mViewList) {
            this.mViewList = mViewList;
        }

        @Override
        public int getCount() {
            return mViewList.size();//页卡数
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == object;//官方推荐写法
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            container.addView(mViewList.get(position));//添加页卡
            return mViewList.get(position);
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView(mViewList.get(position));//删除页卡
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mTitleList.get(position);
        }
    }
}

layout文件





    

        
        
        
        

        


        


            



        

        

    

你可能感兴趣的:(Android TabLayout+ViewPage)