Вы можете использовать ViewPager
в своей деятельности и адаптировать список фрагментов для каждого элемента, используя FragmentPagerAdapter
.
. В backstack будет содержаться только фрагмент, содержащий ViewPager
, поэтому при повторном нажатиизакрыть все действия.
Основная активность:
public class MyActivity extends AppCompatActivity {
private ViewPager myViewPager;
private MyFragmentAdapter adapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
adapter = new MyFragmentAdapter(getSupportFragmentManager());
adapter.setFragments("5");
myViewPager = findViewById(R.id.myViewPager);
myViewPager.setAdapter(adapter);
}
}
Адаптер фрагмента:
class MyFragmentAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments = new ArrayList<>();
public MyFragmentAdapter(@NonNull FragmentManager fm) {
super(fm);
}
@NonNull
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
public void setFragments(String noOfFragments){
int intFragments = Integer.parseInt(noOfFragments);
for (int i = 0; i < intFragments; i++){
this.fragments.add(new Fragment());
}
}
}
Макет деятельности:
<?xml version="1.0" encoding="utf-8"?>
<ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"enter code here>
<ViewPager
android:id="@+id/myViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</ConstraintLayout>
- Я удалил квалификаторы представлений, вы должны заполнить их либо библиотекой поддержки, либо androidx