[英]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.