package com.marshalchen.common.demoofui.sampleModules; import android.annotation.SuppressLint; import android.app.Activity; import android.content.res.Resources; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.Toolbar; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.marshalchen.common.demoofui.R; import com.marshalchen.common.uimodule.materialtabs.MaterialTab; import com.marshalchen.common.uimodule.materialtabs.MaterialTabHost; import com.marshalchen.common.uimodule.materialtabs.MaterialTabListener; public class MaterialTabsWithIconsActivity extends ActionBarActivity implements MaterialTabListener { private ViewPager pager; private ViewPagerAdapter pagerAdapter; MaterialTabHost tabHost; private Resources res; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.material_tab_activity_main); res = this.getResources(); // init toolbar (old action bar) Toolbar toolbar = (Toolbar) this.findViewById(R.id.toolbar); toolbar.setTitleTextColor(Color.WHITE); this.setSupportActionBar(toolbar); tabHost = (MaterialTabHost) this.findViewById(R.id.materialTabHost); pager = (ViewPager) this.findViewById(R.id.viewpager); // init view pager pagerAdapter = new ViewPagerAdapter(getSupportFragmentManager()); pager.setAdapter(pagerAdapter); pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { // when user do a swipe the selected tab change tabHost.setSelectedNavigationItem(position); } }); // insert all tabs from pagerAdapter data for (int i = 0; i < pagerAdapter.getCount(); i++) { tabHost.addTab( tabHost.newTab() .setIcon(getIcon(i)) .setTabListener(this) ); } //tabHost.setAccentColor(Color.BLUE); } @Override public void onTabSelected(MaterialTab tab) { // when the tab is clicked the pager swipe content to the tab position pager.setCurrentItem(tab.getPosition()); } @Override public void onTabReselected(MaterialTab tab) { } @Override public void onTabUnselected(MaterialTab tab) { } private class ViewPagerAdapter extends FragmentStatePagerAdapter { public ViewPagerAdapter(FragmentManager fm) { super(fm); } public Fragment getItem(int num) { return new IndexFragment(); } @Override public int getCount() { return 3; } @Override public CharSequence getPageTitle(int position) { switch(position) { case 0: return "tab 1"; case 1: return "tab 2"; case 2: return "tab 3"; default: return null; } } } /* * It doesn't matter the color of the icons, but they must have solid colors */ private Drawable getIcon(int position) { switch(position) { case 0: return res.getDrawable(R.drawable.material_tab_ic_person_black_24dp); case 1: return res.getDrawable(R.drawable.material_tab_ic_group_black_24dp); case 2: return res.getDrawable(R.drawable.material_tab_ic_notifications_off_white_24dp); } return null; } @SuppressLint("ValidFragment") public class IndexFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { TextView text = new TextView(container.getContext()); text.setText("Section"); text.setGravity(Gravity.CENTER); return text; } } }