活动中多个片段的方向变化?



FragmentA响应 onConfigurationChanged 正确更改,但如果我在它上面打开 FragmentB 并旋转设备,它就会打开配置更改触发并且也触发了 FragmentA 的配置更改。

我在活动中有片段A,片段A响应onConfigurationChanged,并在横向模式下打开另一个活动,如果单击FragmentA列出其打开的详细信息片段,我们称之为fragmentB.fragmentB也有方法onConfigurationChanged并在横向模式下打开另一个活动。

FragmentA{

@Override
public void onClick(View v) {
//open FragmentB 
}
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
} else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//landScape of FragmentA 
//open any Activaty
}
}
FragmentB{
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
} else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//landScape of FragmentB
//open any Activaty
}
}

片段 B 上的方向更改导致打开两个活动。一个来自 on配置片段 A 的更改,另一个来自 on配置已更改 的片段B。

尝试此方法来解决您的问题。

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
// Your code here
} else {
// Your code here
}
}

最新更新