簡體   English   中英

如何去除出現在底部的黑條?

[英]How to remove the black bar appearing at the bottom?

我是 Android 開發的新手。 我希望我的應用程序支持我設備的屏幕尺寸,即1080 x 2160 pixels 目前有一個黑色的底部欄顯示在導航按鈕的位置。

在此處輸入圖片說明

請注意,我不想要Full Screen Mode 我已禁用設備上的按鈕導航。 僅針對此應用程序顯示底部黑色矩形。 我只希望我的應用程序支持我的設備的手勢導航系統而不是按鈕。如何使用 Java ( Android Studio ) 使底部欄消失,以便我的應用程序利用該空間?

問題很老,但我遇到了同樣的問題,並沒有在 SO 上找到解決方案。
長屏出現這個問題

我們建議您將應用設計為支持 2.1 或更高的縱橫比。 為此,您需要將以下內容添加到 Manifest 文件中的“application”元素中:

<meta-data android:name="android.max_aspect" android:value="2.1" />

從這里

我遇到了同樣的問題,用這個更新了清單文件,如果你有的話,請刪除。

<meta-data
    android:name="android.max_aspect"
    android:value="2.1" />

<meta-data
    android:name="android.max_aspect"
    android:value="2.4" />

現在為我工作。

嗨,請嘗試以下代碼

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

你可以試試這個

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        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);
    }
}

嘗試添加此代碼

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    hideSystemUI(this, 1000);
}

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        // Hide bar after 1 second
        hideSystemUI(this, 1000);
    }
}

public static void hideSystemUI(@NonNull final Activity activity, final int delayMs) {
    View decorView = activity.getWindow().getDecorView();
    int uiState = View.SYSTEM_UI_FLAG_IMMERSIVE
            | 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;
    final Handler handler = new Handler();
    decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
        @Override
        public void onSystemUiVisibilityChange(int visibility) {
            if (visibility == View.VISIBLE) {
                Runnable runnable = new Runnable() {
                    @Override
                    public void run() {
                        hideSystemUI(activity, 1000);
                    }
                };
                handler.postDelayed(runnable, delayMs);
            }
        }
    });
    decorView.setSystemUiVisibility(uiState);
}

警告

如果您有兩個活動,請在更改之前添加此項

View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener(null);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM