#android #material_design #menu #android_toolbar
Пытаюсь сделать так -
Java код
//Pager
TabsViewPagerAdapter adapter = new TabsViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new Fragment1(), "Первый");
adapter.addFragment(new Fragment2(), "Second");
viewPager.setAdapter(adapter);
//Set tabs
tabLayout.setupWithViewPager(viewPager);
Так же вот вам мой класс -
public class PagerAdapterHelper extends FragmentPagerAdapter {
private final List mFragmentList = new ArrayList<>();
private final List mFragmentTitleList = new ArrayList<>();
public PagerAdapterHelper(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "ONE";
case 1:
return "TWO";
default:
return "WTF";
}
}
}
После запуска Активити есть тулбар и поле под ним, но почему-то самих табов на нем
нет. Так же сами фрагменты спокойно отображаются/листаются. На табы можно тыкать, все
норм, только надписей нет(
Ответы
Ответ 1
Для этого применяются табы. Код разметки:Код добавления: Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); assert toolbar != null; setSupportActionBar(toolbar); viewPager = (ViewPager) findViewById(R.id.viewpager); tabLayout = (TabLayout) findViewById(R.id.tabs); TabsViewPagerAdapter adapter = new TabsViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new Fragment1(), "ssss"); adapter.addFragment(new Fragment2(), "Second"); viewPager.setAdapter(adapter); viewPager.setAdapter(adapter); assert tabLayout != null; tabLayout.setupWithViewPager(viewPager); tabLayout.setupWithViewPager(viewPager); tabLayout.getTabAt(0).setText("1"); tabLayout.getTabAt(1).setText("2"); Код адаптера: public class TabsViewPagerAdapter extends FragmentPagerAdapter { private final List mFragmentList = new ArrayList<>(); private final List mFragmentTitleList = new ArrayList<>(); public TabsViewPagerAdapter(FragmentManager manager) { super(manager); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFragment(Fragment fragment, String title) { mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position); } } Ответ 2
build.gradle dependencies { compile 'com.android.support:design:23.1.1' } activity_pull_to_refresh.xmlTabLayoutActivity.class public class TabLayoutActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pull_to_refresh); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout); ViewPager viewPager = (ViewPager) findViewById(R.id.pager); if (toolbar != null) { setSupportActionBar(toolbar); } viewPager.setAdapter(new SectionPagerAdapter(getSupportFragmentManager())); tabLayout.setupWithViewPager(viewPager); } public class SectionPagerAdapter extends FragmentPagerAdapter { public SectionPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { switch (position) { case 0: return new FirstTabFragment(); case 1: default: return new SecondTabFragment(); } } @Override public int getCount() { return 2; } @Override public CharSequence getPageTitle(int position) { switch (position) { case 0: return "First Tab"; case 1: default: return "Second Tab"; } } } }
Комментариев нет:
Отправить комментарий