如何删除底部出现的黑条?

时间:2019-01-06 10:19:52

标签: android android-layout navigationbar

我是Android开发的新手。我希望我的应用支持设备的屏幕尺寸,即1080 x 2160 pixels。当前,有一个黑色的底部栏显示在导航按钮的位置。

enter image description here

请注意,我不需要Full Screen Mode我已禁用设备上的按钮导航。底部黑色矩形仅用于此应用。 我只希望我的应用程序支持设备的手势导航系统而不是按钮。请问如何使用Java(Android Studio)使底部的栏消失,以便我的应用程序能够利用该空间?

5 个答案:

答案 0 :(得分:3)

问题很老,但是我遇到了同样的问题,却没有找到解决方案。
对于长屏幕会出现此问题

我们建议您设计应用程序以支持2.1或更高的宽高比。为此,您可以将以下内容添加到清单文件中的“ application”元素中:

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

from here

答案 1 :(得分:0)

嗨,请尝试以下代码

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

答案 2 :(得分:0)

您可以尝试

@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);
    }
}

答案 3 :(得分:0)

尝试添加此代码

@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);

答案 4 :(得分:0)

我遇到了同样的问题,使用此文件更新了清单文件,如果有的话,请删除。

之前

email = EmailMultiAlternatives(
        subject=subject,
        body=body_text,
        from_email=from_email,
        to=to_email,
        reply_to=reply_to_email,
        cc=cc_email,
        bcc=bcc_email
    )
    email.attach_alternative(body_html, 'text/html')

    # attachments
    for attachment in attachments:
        email.attach(attachment.name, attachment.document.read())

    email.send()

之后

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

现在为我工作。