我有
Fragment A
已经addToBackStack()
。
Fragment B
不是addToBackStack()
。
当我在Fragment A
时。我可以使用onSaveInstanceState
&来检测更改方向onViewStateRestored
方法。
但是当我在Fragment B
时,我无法成功。我尝试使用onSaveInstanceState
&来检测更改方向onViewStateRestored
方法也行不通。
这意味着它总是在Fragment A
中检测到更改方向,尽管我在Fragment B
中。 (无法识别Fragment B
)中的更改方向
知道如何检测Fragment B
中的更改方向而未检测到Fragment A
的更改方向的人?
请帮助我,
谢谢,
p / s:以下代码详细介绍了如何从Fragment A
转移到Fragment B
getFragmentManager().beginTransaction()
.replace(R.id.fr_content_activity_fitness, mFm)
.commitAllowingStateLoss();
答案 0 :(得分:0)
检测方向:
mCurrentOrientation = getResources().getConfiguration().orientation;
处理方向更改:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mCurrentOrientation = newConfig.orientation;
}
所有这些都可以很好地运作。
答案 1 :(得分:0)
现在我找到了问题的答案。
由于我使用了以下代码详细说明如何传输from Fragment A to Fragment B
getFragmentManager().beginTransaction()
.replace(R.id.fr_content_activity_fitness, mFm)
.commitAllowingStateLoss();
片段A已添加到BackStack
。
所以上下文现在只有Fragment A
。
要检测Fragment B
中的更改方向,如上面的问题详情,请更改为以下代码,它有效:
getFragmentManager().beginTransaction()
.add(R.id.fr_content_activity_fitness, mFm)
.commitAllowingStateLoss();
使用add
代替replace
。