Android旋转屏幕并替换片段

Android旋转屏幕并替换片段,android,fragment,Android,Fragment,因此,我有一个主要活动,其中一个片段(FragmentA)设置为默认值 我的工具栏上有两个按钮; 按钮1旋转屏幕并将FragmentA的布局设置为横向 按钮2应将碎片a替换为新碎片B @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.split_screen) { currentFragment = ne

因此,我有一个主要活动,其中一个片段(FragmentA)设置为默认值

我的工具栏上有两个按钮; 按钮1旋转屏幕并将FragmentA的布局设置为横向 按钮2应将碎片a替换为新碎片B

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.split_screen) {
        currentFragment = new DualScreenFragment();
        toggleSplitScreen();
    }
    else if (id == R.id.rotate_screen) {
        currentFragment = new PrimaryPDFFragment();
        toggleScreenOrientation();
    }

    return super.onOptionsItemSelected(item);
}
切换SplitScreen():

切换屏幕方向():

然而,我似乎不能处理更换和旋转都在一个。我必须按一次分割屏幕按钮进入横向模式,然后第二次实际替换片段

你知道如何解决这个问题吗?

使用这个代码

// Create new fragment and transaction
Fragment newFragment = new BlankFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();

嘿,试试这个。这仍然是同一个问题。我必须按同一个菜单项两次才能触发屏幕旋转和碎片替换。无论如何谢谢你
    private void toggleScreenOrientation() {
    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    } else {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }
}
// Create new fragment and transaction
Fragment newFragment = new BlankFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();