【发布时间】:2020-04-20 21:03:28
【问题描述】:
我的 ViewPager 有 3 个标签。 Tab(3),除了 stock 片段,还包括 2 个片段 (B) --> (C)。
Tab(1)
Tab(2)
Tab(3) --> (B) --> (C)
通过按下 (C) 中的按钮,我想刷新/重新创建 Tab(2)。 最好的方法是什么?谢谢你。
public class ViewPageAdapter extends FragmentStatePagerAdapter {
private static int NUM_ITEMS = 3;
private FragmentManager mFragmentManager;
private Context mContext;
public ViewPageAdapter(@NonNull FragmentManager fm, Context context) {
super(fm,BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
mFragmentManager = fm;
mContext = context;
}
@NonNull
@Override
public Fragment getItem(int position) {
switch (position){
case 0: return new FragmentInsta();
case 1: return new FragmentListUnlogged();
case 2: return new FragmentHostUnlogged();
default:
return new FragmentListLogged();
}
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public int getItemPosition(@NonNull Object object) {
return POSITION_NONE;
}
}
【问题讨论】:
-
当您刷新标签 (2) 时,您希望对其进行哪些更改?它们是视觉变化还是什么?
-
在 Tab(2) 片段的开头,如果用户登录,我会进行验证。如果是,则它将当前片段替换为 userIsLoggedFragment。所以我想刷新 Tab(2) 再次验证。
-
所以它替换了 onCreateView 中的整个布局?
-
是的,我有两个独立的全屏布局
-
当您在要刷新的 Fragment 中使用
super(fm,BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);时,只需将要刷新的代码放在onResume方法中,这样当用户查看 Tab(2) 片段时,它将被刷新
标签: java android android-fragments android-viewpager