我正在将 aViewPager2与 a 一起使用FragmentStateAdapter。
public class MyAdapter extends FragmentStateAdapter {
public MyAdapter(@NonNull Fragment fragment) {
super(fragment);
}
@NonNull
@Override
public Fragment createFragment(int position) {
return MyFragment.newInstance(MyClass.func(position));
}
@Override
public int getItemCount() {
return MyClass.NUM;
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,调用notifyDataSetChanged()适配器根本没有任何效果。(打电话notifyItemChanged(position)效果很好。)
我该如何解决这个问题?
我正在使用带有 FragmentStateAdapter 的 viewpager2 制作文件选择页面。在其中一个页面中,我显示了所有已安装的存储设备,我想点击这些设备来查看内容,但我希望内容位于另一个片段上。
我想用viewpager最后一页中的另一个片段替换片段。但是使用以下代码,页面只会刷新,并且不会创建新的 Fragment,因为createFragment不会被调用。
我的寻呼机适配器
public static class PagerAdapter extends FragmentStateAdapter {
private Fragment mFragmentAtPos0;
private final FragmentManager mFragmentManager;
private final FirstPageListener listener = new FirstPageListener();
public final class FirstPageListener implements
FirstPageFragmentListener {
public void onSwitchToNextFragment() {
mFragmentManager.beginTransaction().remove(mFragmentAtPos0)
.commit();
if (mFragmentAtPos0 instanceof FilesandFolder_Others_MainPage){
mFragmentAtPos0 = new FileExplorer(listener);
}else{ // Instance of NextFragment
mFragmentAtPos0 = new FilesandFolder_Others_MainPage(listener);
}
notifyDataSetChanged();
}
public void onSwitchToNextFragment(Bundle bundle) {
// mFragmentManager.beginTransaction().remove(mFragmentAtPos0)
// .commit();
if (mFragmentAtPos0 instanceof FilesandFolder_Others_MainPage){
mFragmentAtPos0 = new …Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager fragmentstateadapter
android ×3