package yifeiyuan.practice.practicedemos.ui; import android.os.Bundle; import android.support.design.widget.TabLayout; 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.support.v7.app.AppCompatActivity; import java.util.ArrayList; import java.util.List; import butterknife.ButterKnife; import butterknife.InjectView; import yifeiyuan.practice.practicedemos.R; import yifeiyuan.practice.practicedemos.materialsupport.GridFragment; import yifeiyuan.practice.practicedemos.materialsupport.ListFragment; import yifeiyuan.practice.practicedemos.materialsupport.StaggeredGridFragment; public class UIOneActivity extends AppCompatActivity { @InjectView(R.id.tablayout) TabLayout mTablayout; @InjectView(R.id.vp) ViewPager mVp; TabAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_uione); ButterKnife.inject(this); mAdapter = new TabAdapter(getSupportFragmentManager()); mAdapter.addFragment(new ListFragment(), "List"); mAdapter.addFragment(new GridFragment(), "Grid"); mAdapter.addFragment(new StaggeredGridFragment(), "StaggeredGrid"); mVp.setAdapter(mAdapter); mTablayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); mTablayout.setupWithViewPager(mVp); mTablayout.setTabsFromPagerAdapter(mAdapter); mTablayout.setTabMode(TabLayout.MODE_FIXED); } private class TabAdapter extends FragmentPagerAdapter{ private final List<Fragment> mFragments = new ArrayList<>(); private final List<String> mFragmentTitles = new ArrayList<>(); public void addFragment(Fragment fragment, String title) { mFragments.add(fragment); mFragmentTitles.add(title); } public TabAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getCount() { return mFragments.size(); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitles.get(position); } } }