Как прикрепить новый фрагмент к Activity? - PullRequest
0 голосов
/ 03 марта 2020

Я хочу открыть новый фрагмент поверх моего существующего фрагмента, но я не смогу сделать это, может кто-нибудь, кто прикрепил мой код, помогите

Это мой LoginFragment и замените его BookingHistoryFragment

String statusCode = response.getString("statusCode");
if (statusCode.equalsIgnoreCase("ok")) {
    // get token and start your flow
    final FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    ft.replace(R.id.details, new NewFragmentToReplace(), "NewFragmentTag");
    ft.commit();
}

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

Я реализовал нечто подобное в моем приложении. Для этого сначала я добавил оба фрагмента внутри onCreate (Bundle saveInstanceState)

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_home);

    getSupportFragmentManager().beginTransaction().add(R.id.middle_layout, normalMatchFragment).commit();
    getSupportFragmentManager().beginTransaction().add(R.id.middle_layout, 
    infinityMatchFragmnet).commit();
    }

, а затем вызывал метод changeFragment (boolean isNormalFrag mnet) всякий раз, когда вы хотите переключить фрагменты.

    public void changeFragment(boolean isNormalFragmnet) {
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    if (isNormalFragmnet) {
        isNoramFragment = true;
        transaction.hide(infinityMatchFragmnet);
        transaction.show(normalMatchFragment);
    } else {
        isNoramFragment = false;
        transaction.hide(normalMatchFragment);
        transaction.show(infinityMatchFragmnet);
    }
    transaction.commit();
}
0 голосов
/ 03 марта 2020

Используйте этот код для открытия фрагмента к активности

public void onFragment(Fragment fragment) {
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.add(R.id.home_frag, fragment);
    fragmentTransaction.addToBackStack(null);
    fragmentTransaction.commit();
}
...