4
我希望我的應用程序能夠在適當的時候沉浸其中,並在api太低時模仿某些功能。這是一個適當的方式來做到這一點?有沒有更高效的方法?Android Immersive模式和向後兼容性
private boolean apiTooLowForImmersive = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT){
apiTooLowForImmersive = true;
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
setContentView(R.layout.activity_menu);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus && !apiTooLowForImmersive) {
getWindow().getDecorView()
.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
);}
}
那麼爲什麼要使用靜態塊呢?爲什麼不在創建時將其初始化? 'public static boolean apiTLFI =(SDK_INT
BrassApparatus
添加SuppressWarning(「NewApi」);這是一個警告,如果你使用不支持的東西(但你不需要警告,因爲你已經處理了這種情況)會報告你。是的,你可以做到這一點。只有我。 –
只是偶然發現了'@TargetApi()'。有什麼不同?萬分感謝! – BrassApparatus