onConfigurationChanged

onConfigurationChanged

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
        }
    }

10-08 02:47