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);
}
}
});
}
}
或