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;
}
}
}