Создайте ViewPager и макет вкладки (если вам нужна вкладка) внутри макета Activity
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_below="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:elevation="10dp"
android:minHeight="?attr/actionBarSize"
app:tabGravity="fill"
app:tabMode="fixed"
app:tabIndicatorColor="@color/green2"
app:tabIndicatorHeight="4dp"
app:tabIndicatorGravity="top"
app:tabSelectedTextColor="#FFFFFF"
app:tabTextColor="#555050" />
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tabLayout" />
Создайте ViewpageAdapter
public class ViewPagerAdapter extends FragmentPagerAdapter {
String[] names = new String[2];
List<Fragment> fragmentList = new ArrayList<>();
List<String> fragmentTitles = new ArrayList<>();
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
names[0] = "Fragment One";
names[1] = "Fragment Two";
}
@Override
public Fragment getItem(int i) {
return fragmentList.get(i);
}
@Override
public int getCount() {
return fragmentList.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return fragmentTitles.get(position);
}
public void addFragments(Fragment fragment, String title) {
fragmentList.add(fragment);
fragmentTitles.add(title);
}
}
В вашем классе активности внутри onCreate () инициализировать это представление пейджер
viewPager = findViewById(R.id.viewPager);
viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
//adding fragments to page
viewPagerAdapter.addFragments(new Fragment1Class(), getResources().getString(R.string.tab1Name));
viewPagerAdapter.addFragments(new Fragment2Class(), getResources().getString(R.string.tab2Name));
//setUp
viewPager.setAdapter(viewPagerAdapter);
tabLayout = findViewById(R.id.tabLayout);
tabLayout.setupWithViewPager(viewPager);
Если вы используете вкладки, добавьте их тоже.
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
selectedTabPosition = getTabSelected();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
selectedTabPosition = getTabSelected();
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
selectedTabPosition = getTabSelected();
}
});
Не забудьте добавить пустой конструктор внутри класса фрагмента
Чтобы запустить определенный фрагмент внутри действия
Поместите это в свою деятельность, которая начинает действие с фрагментами
int fragOne=1;
int fragTwo=2;
Intent intent = new Intent(getBaseContext(), MainActivity.class);
//sending data to MainActivity
Bundle extras=new Bundle();
extras.putInt("fragmentId",fragOne);
intent.putExtras(extras);
startActivity(intent);
Внутри вашей деятельности с фрагментами
//getting data
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
if (bundle!=null) {
int fragId=bundle.getInt("fragmentId");
}
if (fragmentId==1) {
viewPagerAdapter.addFragments(new fragment1Class(), getResources().getString(R.string.tab1Name));
}else if (fragmentId==2) {
viewPagerAdapter.addFragments(new fragment2Class(), getResources().getString(R.string.tab1Name));
}