4
적절한 경우 앱을 몰입 형으로 설정하고 API가 너무 낮은 경우 일부 기능을 모방하려고합니다. 이것이 적절한 방법일까요? 더 효율적인 방법이 있습니까?Android 무단 사용 모드 및 이전 버전과의 호환성
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