小米 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 中。
我正在尝试创建一个与父身高匹配的 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 中。