检测更改片段之间的方向

时间:2014-06-04 10:44:42

标签: android android-fragments fragment orientation android-orientation

我有

  • 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();

2 个答案:

答案 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