Copy public class MainActivity extends AppCompatActivity {
private ViewPager2 viewPager;
...
private class Adapter extends FragmentStateAdapter {
public Adapter2 (@ NonNull FragmentActivity fragmentActivity) {
super(fragmentActivity);
}
@ NonNull
@ Override
public Fragment createFragment ( int position) {
return null ;
}
@ Override
public int getItemCount () {
return 0 ;
}
}
}
Внутри класса адаптера создадим приватное поле со списком фрагментов, добавим метод для добавления фрагмента в список. Метод getItemCount()
будет возвращать количество элементов в списке фрагментов, метод createFragment()
будет возвращать i-ый элемент из списка.
Copy public class MainActivity extends AppCompatActivity {
private ViewPager2 viewPager;
private class Adapter extends FragmentStateAdapter {
private List < Fragment > list = new ArrayList <>();
public void addFragment ( Fragment fragment) {
list . add (fragment);
}
public Adapter ( FragmentActivity fa) {
super(fa);
}
@ Override
public Fragment createFragment ( int position) {
return list . get (position);
}
@ Override
public int getItemCount () {
return list . size ();
}
}
}
Copy public class MainActivity extends AppCompatActivity {
private ViewPager2 viewPager;
@ Override
protected void onCreate ( Bundle savedInstanceState) {
super . onCreate (savedInstanceState);
...
viewPager = findViewById( R . id . container ) ;
Adapter adapter = new Adapter( this ) ;
adapter . addFragment ( new WintersunFragment() );
adapter . addFragment ( new InsomniumFragment() );
adapter . addFragment ( new BelakorFragment() );
viewPager . setAdapter (adapter);
}
private class Adapter extends FragmentStateAdapter {
private List < Fragment > list = new ArrayList <>();
public void addFragment ( Fragment fragment) {
list . add (fragment);
}
public Adapter ( FragmentActivity fa) {
super(fa);
}
@ Override
public Fragment createFragment ( int position) {
return list . get (position);
}
@ Override
public int getItemCount () {
return list . size ();
}
}
}