Android Fragment Transaction загружает фрагмент, но не раздувает представление при нажатии на уведомление. - PullRequest
0 голосов
/ 14 января 2019

У меня есть активность с BottomNavigationBar с 4 фрагментами. Я открываю Fragment1 из то есть MapFragment из MainActivity. И после этого я открываю еще один фрагмент, т.е. фрагмент сообщения из MapFragment. Загружается успешно. Но когда я сейчас пытаюсь открыть любой другой фрагмент, будь то по активности или внутри фрагмента, в обоих случаях фрагмент загружается успешно, но не расширяет представление.

Вот мой фрагмент кода для транзакции фрагмента внутри действия:

private void loadFragment(Fragment fragment) {
    // load fragment
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    transaction.replace(R.id.frame_container, fragment, fragment.getClass().getSimpleName());
    transaction.addToBackStack(fragment.getClass().getSimpleName());
    transaction.commit();
    fragmentManager.executePendingTransactions();
}

А это мой код для транзакции фрагмента во всех остальных фрагментах:

private void loadFragment(Fragment fragment) {
    // load fragment
    assert getActivity() != null;
    FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
    fragmentManager.executePendingTransactions();
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    transaction.replace(R.id.frame_container, fragment, fragment.getClass().getSimpleName());
    transaction.addToBackStack(fragment.getClass().getSimpleName());
    transaction.commit();
    fragmentManager.executePendingTransactions();
}

А это мой фрагмент кода для обработки уведомлений:

 /*Open Messages Screen on PushNotification Click*/
    try {
        Bundle bundle = getActivity().getIntent().getExtras();
        if (bundle != null) {
            JSONObject jsonObject = new JSONObject(Objects.requireNonNull(bundle.get("data")).toString());
            if (jsonObject.getString("notificationType").equals("Message")) {
                UrbanCircleSingleton.setBottomBarItemSelected(R.id.bottom_bar_item_messages);
                loadFragment(MessagesFragment.newInstance());

                //Clear notification data from intent
                getActivity().setIntent(null);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
...