Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 所有应用程序中的全屏切换_Android_Togglebutton_Android Fullscreen_Android Togglebutton - Fatal编程技术网

Android 所有应用程序中的全屏切换

Android 所有应用程序中的全屏切换,android,togglebutton,android-fullscreen,android-togglebutton,Android,Togglebutton,Android Fullscreen,Android Togglebutton,在上一篇文章中,我尝试了下一个代码: if (isChecked) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); } else

在上一篇文章中,我尝试了下一个代码:

if (isChecked)
            {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
            }
        else
            {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
            }

这是工作,但只有一项活动。如何为所有应用程序执行此操作?

创建一个
活动
类,其他所有类
都扩展它。比如说

public abstract class BaseActivity extends AppCompatActivity {
    protected abstract boolean toggleFullScreen();

    @Override protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (toggleFullScreen()) {
            //fullScreen
        }
    }
}

现在,不要在您的另一个
活动中扩展
AppCompatActivity
,而是扩展
BaseActivity

创建一个
活动
类,其他所有类都扩展它。比如说

public abstract class BaseActivity extends AppCompatActivity {
    protected abstract boolean toggleFullScreen();

    @Override protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (toggleFullScreen()) {
            //fullScreen
        }
    }
}

现在,不要在其他
活动中扩展
AppCompatActivity
,而是扩展
BaseActivity

始终在应用程序类下执行通用初始化

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();       
        onActivityLifecycleCallback();

    }

    private void onActivityLifecycleCallback() {
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {

           @Override
            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {

 if (isChecked)
            {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
                activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
            }
        else
            {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
            }
            }


        });
    }

}


始终在应用程序类下执行通用初始化

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();       
        onActivityLifecycleCallback();

    }

    private void onActivityLifecycleCallback() {
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {

           @Override
            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {

 if (isChecked)
            {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
                activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
            }
        else
            {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
            }
            }


        });
    }

}