Refre sh фрагмент в ViewPager - PullRequest
       12

Refre sh фрагмент в ViewPager

0 голосов
/ 21 апреля 2020

У меня есть ViewPager с 3 вкладками. Вкладка (3), кроме основного фрагмента, содержит еще 2 фрагмента (B) -> (C).

Tab(1)
Tab(2)
Tab(3) --> (B) --> (C)

Нажав кнопку в (C), я хочу обновить / восстановить Вкладка (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;
    }
}

1 Ответ

0 голосов
/ 21 апреля 2020

Благодаря пользователю с именем «Андрей» я нашел решение. Таким образом, я переопределяю метод onPause.

@Override
public void onResume() {
    if(preferenceUtils.getBoolean("isLogged")){
        FragmentTransaction trans = getChildFragmentManager().beginTransaction();
        trans.replace(R.id.listUnlogged_container, new FragmentListLogged(), "ListUnlogged-ListLogged");
        trans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
        trans.addToBackStack(FRAGMENT_TAG);
        trans.commit();
    }
    super.onResume();
}
...