小米 Redmi Note 9 Pro 上的活动高度与父级不匹配

Activty height does not match parent on Xiaomi Redmi Note 9 Pro

我正在尝试创建一个与父身高匹配的 activity。当我在 Pixel XL 上测试应用程序时,应用程序正常,但在小米 Redmi Note 9 Pro 上安装时,屏幕的一部分没有被覆盖。这是摄像头上方的部分,可能我的问题不仅针对这个 phone,而且我想我想针对所有其他设计相同的部分。

这是它在 Pixel 上的样子,没问题:

这是小米红米 Note 9 Pro 的样子:

这是我的 activity 代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/main_screen_background"
tools:context=".activty.WelcomeActivity">

<include layout="@layout/toolbar" />

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/main_menu_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/toolbar"
    android:layout_marginTop="20dp"
    android:layout_marginBottom="60dp" />

</RelativeLayout>

如果需要,这是我的工具栏:

<androidx.appcompat.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/main_screen_background"
android:theme="@style/AppFullScreenTheme"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

<RelativeLayout
    android:id="@+id/test_menu_language_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginStart="30dp"
    android:layout_marginTop="30dp"
    android:layout_marginEnd="30dp">

    <ImageView
        android:id="@+id/about_dropdown_menu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_ikonki_potrosuvaci_02" />

    <TextView
        android:id="@+id/language_dropdown_menu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:text="MK"
        android:textColor="@color/white"
        android:textSize="20dp" />
</RelativeLayout>
</androidx.appcompat.widget.Toolbar>

我想要实现的是也覆盖黑色部分并具有 activity 的颜色,这可能是一件容易的事,但我对 android 有点生疏。我检查了其他应用程序,它们涵盖了那部分。

所以实际上只需要在您的 v27/styles 中添加两行代码。xml:

<item name="android:windowLayoutInDisplayCutoutMode">
    shortEdges <!-- default, shortEdges, never -->
</item>
<item name="android:windowTranslucentStatus">true</item>

第一个将覆盖该区域,第二个将 activity 的颜色设置为该区域。这就是我的 styles.xml 的样子:

<?xml version="1.0" encoding="utf-8"?>
<resources>

<style name="AppFullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowLayoutInDisplayCutoutMode">
        shortEdges <!-- default, shortEdges, never -->
    </item>
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:popupMenuStyle">@style/PopupMenu</item>
    <item name="android:textAppearanceLargePopupMenu">@style/myPopupMenuTextAppearanceLarge
    </item>
    <item name="android:textAppearanceSmallPopupMenu">@style/myPopupMenuTextAppearanceSmall
    </item>
</style>

</resources>

最后,我将这种风格应用到我拥有的每一个 activity 中。