سؤال

أريد أن يكون تطبيقي غامرًا عندما يكون ذلك مناسبًا وأن يحاكي بعض الوظائف عندما تكون واجهة برمجة التطبيقات منخفضة جدًا.هل هذه طريقة مناسبة للقيام بذلك؟هل هناك طريقة أكثر فعالية؟

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
            );}
}
هل كانت مفيدة؟

المحلول

لا، إنها أفضل طريقة للقيام بذلك (أو حسنًا، إنه نفس النظام الذي أستخدمه في طلبي)

مجرد ملاحظة، قم بها apiTooLowForImmersive static و public

public static boolean apiTooLowForImmersive = false;

وإعطاء قيمة لها في static حاجز.

static { 
       apiTooLowForImmersive = 
               (Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT); 
}

وبهذا، يمكنك استخدام هذا الحقل في كل فصل دراسي وفي كل مرة تحتاج فيها إلى معرفة الكود الآمن للاستخدام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top