簡體   English   中英

重新創建活動后片段不可見

[英]Fragment not visible after when activity is recreated

我正在使用帶有四個片段的底部導航視圖,以避免重新創建我正在使用此代碼片段的片段:

private void changeFragment(Fragment fragment, String tagFragmentName) {
    FragmentTransaction ft = fm.beginTransaction();

    Fragment currentFragment = fm.getPrimaryNavigationFragment();

    if (currentFragment != null) {
        ft.hide(currentFragment);
    }

    Fragment fragmentTemp = fm.findFragmentByTag(tagFragmentName);

    if (fragmentTemp == null) {
        fragmentTemp = fragment;
        ft.add(R.id.content, fragmentTemp, tagFragmentName);
    } else {
        ft.show(fragmentTemp);
    }

    ft.setPrimaryNavigationFragment(fragmentTemp).commit();
}

private void showProspectFragment() {
    changeFragment(ProspectContainerFragment.newInstance(), ProspectContainerFragment.class.getSimpleName());
}

private void showChatsFragment() {
        changeFragment(ChatsFragment.newInstance(), ChatsFragment.class.getSimpleName());
}

....

// Bottom nav item click listener
binding.bottomNav.setOnNavigationItemSelectedListener(item -> {
        switch (item.getItemId()) {
            case R.id.prospect:
              showProspectFragment();
              return true;
            case R.id.chat:
                showChatsFragment();
                break;
            ...
        }
});

但是每當重新創建活動時(使用 recreate()),由於某種原因,無論我點擊底部導航多少次,片段都是不可見的。

您是否使用顯示/隱藏功能? 如果是這樣,我認為您必須在類onCreate方法中調用一個函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM