标签: fragmentstateadapter

调用notifyDataSetChanged时FragmentStateAdapter不调用createFragment

我正在将 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)效果很好。)

我该如何解决这个问题?

android android-viewpager2 fragmentstateadapter

6
推荐指数
2
解决办法
3712
查看次数

如何为viewpager2片段设置自定义标签?

如何为viewpager2片段设置自定义标签?

如何为 viewpager 片段设置标签?

上述问题提供了答案ViewPager。但这怎么办呢ViewPager2

android fragmentstatepageradapter android-viewpager2 fragmentstateadapter

5
推荐指数
0
解决办法
195
查看次数

NotifyDataSetChanged 在带有 Viewpager2 的 FragmentStateAdapter 中不起作用

我正在使用带有 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

4
推荐指数
1
解决办法
3086
查看次数