Страницы

Поиск по вопросам

суббота, 28 декабря 2019 г.

Меню под Toolbar. Нет названия табов

#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.xml TabLayoutActivity.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"; } } } }

Комментариев нет:

Отправить комментарий