FragmentA正确响应onConfigurationChanged,但是如果我在其顶部打开FragmentB并旋转设备,则它会触发onConfigurationChanged并还会触发FragmentA的onConfigurationChanged。
我在activity中有fragmentA,并且FragmentA在其中响应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
}
}
fragmentB的方向更改导致打开两个活动。一个活动来自fragmentA的onConfigurationChanged,一个来自onConfigurationChanged
FragmentB。
最佳答案
尝试使用此方法解决您的问题。
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
// Your code here
} else {
// Your code here
}
}