Trying to do so -

Need so

Java code

//Pager TabsViewPagerAdapter adapter = new TabsViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new Fragment1(), "Первый"); adapter.addFragment(new Fragment2(), "Second"); viewPager.setAdapter(adapter); //Set tabs tabLayout.setupWithViewPager(viewPager); 

So here's my class for you -

 public class PagerAdapterHelper extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> 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"; } } 

}

After launching Activiti there is a toolbar and a field under it, but for some reason there are no tabs on it. Also, the fragments themselves are quietly displayed / scrolling. On the tabs, you can poke, all the rules, only there are no inscriptions (

    2 answers 2

    To do this, apply tabs.

    Markup Code:

     <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/colorLightGray"> <android.support.design.widget.AppBarLayout android:id="@+id/appBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> </android.support.v7.widget.Toolbar> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabGravity="fill" app:tabMode="scrollable" /> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/appBar" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </RelativeLayout> 

    Add code:

      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"); 

    Adapter code:

     public class TabsViewPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> 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); } } 
    • What is YourFragment and how to do it? - Mr Klonwar
    • one
      @MrKlonwar, these are your 2 fragments, which you will display in tabs. - Nikotin N
    • There are no more errors, but for some reason, when the activation is started, the tabs do not appear, just an empty green line - Mr Klonwar
    • add method to adapter - @Override public CharSequence getPageTitle (int position) {return mFragmentTitleList.get (position); } - Nikotin N
    • After adding the method, nothing has changed (he adds the fragment itself, but there is no taba - Mr Klonwar

    build.gradle

     dependencies { compile 'com.android.support:design:23.1.1' } 

    activity_pull_to_refresh.xml

     <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary"/> <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content"/> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent"/> 

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