package com.ximsfei.skindemo.flycotablayout.ui;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import com.flyco.tablayout.CommonTabLayout;
import com.flyco.tablayout.listener.CustomTabEntity;
import com.flyco.tablayout.listener.OnTabSelectListener;
import com.flyco.tablayout.utils.UnreadMsgUtils;
import com.flyco.tablayout.widget.MsgView;
import com.ximsfei.skindemo.R;
import com.ximsfei.skindemo.flycotablayout.entity.TabEntity;
import com.ximsfei.skindemo.flycotablayout.utils.ViewFindUtils;
import java.util.ArrayList;
import java.util.Random;
import skin.support.flycotablayout.widget.SkinMsgView;
public class CommonTabActivity extends FlycoActivity {
private Context mContext = this;
private ArrayList<Fragment> mFragments = new ArrayList<>();
private ArrayList<Fragment> mFragments2 = new ArrayList<>();
private String[] mTitles = {"首页", "消息", "联系人", "更多"};
private int[] mIconUnselectIds = {
R.mipmap.tab_home_unselect, R.mipmap.tab_speech_unselect,
R.mipmap.tab_contact_unselect, R.mipmap.tab_more_unselect};
private int[] mIconSelectIds = {
R.mipmap.tab_home_select, R.mipmap.tab_speech_select,
R.mipmap.tab_contact_select, R.mipmap.tab_more_select};
private ArrayList<CustomTabEntity> mTabEntities = new ArrayList<>();
private View mDecorView;
private ViewPager mViewPager;
private CommonTabLayout mTabLayout_1;
private CommonTabLayout mTabLayout_2;
private CommonTabLayout mTabLayout_3;
private CommonTabLayout mTabLayout_4;
private CommonTabLayout mTabLayout_5;
private CommonTabLayout mTabLayout_6;
private CommonTabLayout mTabLayout_7;
private CommonTabLayout mTabLayout_8;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_common_tab);
for (String title : mTitles) {
mFragments.add(SimpleCardFragment.getInstance("Switch ViewPager " + title));
mFragments2.add(SimpleCardFragment.getInstance("Switch Fragment " + title));
}
for (int i = 0; i < mTitles.length; i++) {
mTabEntities.add(new TabEntity(mTitles[i], mIconSelectIds[i], mIconUnselectIds[i]));
}
mDecorView = getWindow().getDecorView();
mViewPager = ViewFindUtils.find(mDecorView, R.id.vp_2);
mViewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
/** with nothing */
mTabLayout_1 = ViewFindUtils.find(mDecorView, R.id.t2_1);
/** with ViewPager */
mTabLayout_2 = ViewFindUtils.find(mDecorView, R.id.t2_2);
/** with Fragments */
mTabLayout_3 = ViewFindUtils.find(mDecorView, R.id.t2_3);
/** indicator固定宽度 */
mTabLayout_4 = ViewFindUtils.find(mDecorView, R.id.t2_4);
/** indicator固定宽度 */
mTabLayout_5 = ViewFindUtils.find(mDecorView, R.id.t2_5);
/** indicator矩形圆角 */
mTabLayout_6 = ViewFindUtils.find(mDecorView, R.id.t2_6);
/** indicator三角形 */
mTabLayout_7 = ViewFindUtils.find(mDecorView, R.id.t2_7);
/** indicator圆角色块 */
mTabLayout_8 = ViewFindUtils.find(mDecorView, R.id.t2_8);
mTabLayout_1.setTabData(mTabEntities);
tl_2();
mTabLayout_3.setTabData(mTabEntities, this, R.id.fl_change, mFragments2);
mTabLayout_4.setTabData(mTabEntities);
mTabLayout_5.setTabData(mTabEntities);
mTabLayout_6.setTabData(mTabEntities);
mTabLayout_7.setTabData(mTabEntities);
mTabLayout_8.setTabData(mTabEntities);
mTabLayout_3.setOnTabSelectListener(new OnTabSelectListener() {
@Override
public void onTabSelect(int position) {
mTabLayout_1.setCurrentTab(position);
mTabLayout_2.setCurrentTab(position);
mTabLayout_4.setCurrentTab(position);
mTabLayout_5.setCurrentTab(position);
mTabLayout_6.setCurrentTab(position);
mTabLayout_7.setCurrentTab(position);
mTabLayout_8.setCurrentTab(position);
}
@Override
public void onTabReselect(int position) {
}
});
mTabLayout_8.setCurrentTab(2);
mTabLayout_3.setCurrentTab(1);
//显示未读红点
mTabLayout_1.showDot(2);
MsgView rtv_1_2 = mTabLayout_1.getMsgView(2);
if (rtv_1_2 != null) {
if (rtv_1_2 instanceof SkinMsgView) {
((SkinMsgView) rtv_1_2).setBackgroundColorResource(R.color.msg_background_color);
}
}
mTabLayout_3.showDot(1);
MsgView rtv_3_1 = mTabLayout_3.getMsgView(1);
if (rtv_3_1 != null) {
if (rtv_3_1 instanceof SkinMsgView) {
((SkinMsgView) rtv_3_1).setBackgroundColorResource(R.color.msg_background_color);
}
}
mTabLayout_4.showDot(1);
MsgView rtv_4_1 = mTabLayout_4.getMsgView(1);
if (rtv_4_1 != null) {
if (rtv_4_1 instanceof SkinMsgView) {
((SkinMsgView) rtv_4_1).setBackgroundColorResource(R.color.msg_background_color);
}
}
//两位数
mTabLayout_2.showMsg(0, 55);
MsgView rtv_2_0 = mTabLayout_2.getMsgView(0);
if (rtv_2_0 != null) {
if (rtv_2_0 instanceof SkinMsgView) {
((SkinMsgView) rtv_2_0).setBackgroundColorResource(R.color.msg_background_color);
}
}
mTabLayout_2.setMsgMargin(0, -5, 5);
//三位数
mTabLayout_2.showMsg(1, 100);
MsgView rtv_2_1 = mTabLayout_2.getMsgView(1);
if (rtv_2_1 != null) {
if (rtv_2_1 instanceof SkinMsgView) {
((SkinMsgView) rtv_2_1).setBackgroundColorResource(R.color.msg_background_color);
}
}
mTabLayout_2.setMsgMargin(1, -5, 5);
//设置未读消息红点
mTabLayout_2.showDot(2);
MsgView rtv_2_2 = mTabLayout_2.getMsgView(2);
if (rtv_2_2 != null) {
UnreadMsgUtils.setSize(rtv_2_2, dp2px(7.5f));
}
//设置未读消息背景
mTabLayout_2.showMsg(3, 5);
mTabLayout_2.setMsgMargin(3, 0, 5);
MsgView rtv_2_3 = mTabLayout_2.getMsgView(3);
if (rtv_2_3 != null) {
if (rtv_2_3 instanceof SkinMsgView) {
((SkinMsgView) rtv_2_3).setBackgroundColorResource(R.color.msg_background_color);
((SkinMsgView) rtv_2_3).setStrokeColorResource(R.color.msg_stroke_color);
} else {
rtv_2_3.setBackgroundColor(Color.parseColor("#6D8FB0"));
}
}
}
Random mRandom = new Random();
private void tl_2() {
mTabLayout_2.setTabData(mTabEntities);
mTabLayout_2.setOnTabSelectListener(new OnTabSelectListener() {
@Override
public void onTabSelect(int position) {
mViewPager.setCurrentItem(position);
}
@Override
public void onTabReselect(int position) {
if (position == 0) {
mTabLayout_2.showMsg(0, mRandom.nextInt(100) + 1);
// UnreadMsgUtils.show(mTabLayout_2.getMsgView(0), mRandom.nextInt(100) + 1);
}
}
});
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
mTabLayout_2.setCurrentTab(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
mViewPager.setCurrentItem(1);
}
private class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mTitles[position];
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
}
protected int dp2px(float dp) {
final float scale = mContext.getResources().getDisplayMetrics().density;
return (int) (dp * scale + 0.5f);
}
}