Android旋转屏幕并替换片段
因此,我有一个主要活动,其中一个片段(FragmentA)设置为默认值 我的工具栏上有两个按钮; 按钮1旋转屏幕并将FragmentA的布局设置为横向 按钮2应将碎片a替换为新碎片BAndroid旋转屏幕并替换片段,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
@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();