美文网首页
Android TabLayout+ViewPage

Android TabLayout+ViewPage

作者: 胡修波 | 来源:发表于2017-09-13 10:29 被阅读0次

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<View> mViewList = new ArrayList<>();
    private LayoutInflater mInflater;

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

    /**
     * 页卡标题集合
     * */
    private List<String> 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<Level>() {
            @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<View> mViewList;

        public MyPagerAdapter(List<View> 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文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/fragment_personal_bg_gray"
    android:orientation="vertical">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:scrollbars="none">

        <!--<com.qsyy.liveassistant.widget.person.PersonInfoBasicView-->
        <!--android:id="@+id/person_basic_view"-->
        <!--android:layout_width="match_parent"-->
        <!--android:layout_height="wrap_content" />-->

        <include
            android:id="@+id/view_base_id"
            layout="@layout/view_personal_basic_view" />


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_gravity="center"
            android:background="@color/white"
            android:gravity="center"
            android:orientation="horizontal">


            <android.support.design.widget.TabLayout
                android:id="@+id/tabLayout"
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:layout_gravity="top"
                android:layout_weight="2.5"
                app:layout_behavior="@string/appbar_scrolling_view_behavior"
                app:tabIndicatorColor="@color/color_3897fa"
                app:tabIndicatorHeight="3dp"
                app:tabMode="fixed"
                app:tabSelectedTextColor="@color/color_3897fa"
                app:tabTextAppearance="@style/PersonalTabLayoutTextStyle"
                app:tabTextColor="@color/color_a0a0a0" />



        </LinearLayout>

        <android.support.v4.view.ViewPager
            android:id="@+id/viewPager"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </LinearLayout>
</LinearLayout>

相关文章

网友评论

      本文标题:Android TabLayout+ViewPage

      本文链接:https://www.haomeiwen.com/subject/nyjksxtx.html