替换fragmentPageAdapter
时间: 2023-12-15 09:03:20 浏览: 33
FragmentStateAdapter是Fragment的一种替代方案,它是一个更高效的分页适配器,它只会在需要时创建和销毁Fragment。它比FragmentPagerAdapter更适合于大量页面的情况。使用FragmentStateAdapter的步骤如下:
1. 继承FragmentStateAdapter类,实现getItemCount()和createFragment()方法。
```java
public class MyPagerAdapter extends FragmentStateAdapter {
private static final int NUM_PAGES = 3;
public MyPagerAdapter(FragmentManager fragmentManager, Lifecycle lifecycle) {
super(fragmentManager, lifecycle);
}
@Override
public int getItemCount() {
return NUM_PAGES;
}
@NonNull
@Override
public Fragment createFragment(int position) {
switch (position) {
case 0:
return new Fragment1();
case 1:
return new Fragment2();
case 2:
return new Fragment3();
default:
return null;
}
}
}
```
2. 在Activity或Fragment中创建ViewPager,并使用MyPagerAdapter作为适配器。
```java
public class MainActivity extends AppCompatActivity {
private ViewPager2 viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = findViewById(R.id.view_pager);
viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager(), getLifecycle()));
}
}
```
3. 在布局文件中添加ViewPager。
```xml
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
```