【问题标题】:Android - Theme.AppCompat.DayNight.NoActionBar adds gray line to top of activityAndroid - Theme.AppCompat.DayNight.NoActionBar 在活动顶部添加灰线
【发布时间】:2023-02-04 14:36:46
【问题描述】:

在 themes.xml 中,我定义了从 Theme.AppCompat.DayNight.NoActionBar 扩展的自定义主题

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.NoBackground" parent="Theme.AppCompat.DayNight.NoActionBar">
        <item name="android:windowBackground">@null</item>
        <item name="android:windowSwipeToDismiss">false</item>
    </style>
</resources> 

此主题在活动顶部添加灰色线 - 请参阅文本“解压缩图形文件”上方的线

我的应用程序以 Android 12 为目标,在我使用的 build.gradle 中:

api 'com.android.support:appcompat-v7:27.+'

奇怪的是,这条线并不是在所有经过测试的设备上。在 Samsung s20 上存在 fe,在 Pixel 3XL 上则没有。两者都在android 12上。

我的活动设置为全屏:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

编辑:如果我扩展“android:Theme.NoTitleBar.Fullscreen”主题,那么两个设备上的灰线都消失了。但是,它破坏了带有 android 12 的 Pixel 3XL 上的对话框样式(使用 android 11 没问题)。这就是我切换到 AppCompat 主题的原因。同样的问题出现在三星 s20 fe 上,但在上次三星更新后已修复。

如何删除它?

【问题讨论】:

    标签: android themes


    【解决方案1】:

    在主题中添加这个,看看它是否有效

    <item name="android:windowFullscreen">true</item>
    

    【讨论】:

    • 多谢解答,很遗憾,线路还在
    【解决方案2】:

    我用这个修复了它:

    <style name="Theme.NoBackground" parent="Theme.AppCompat.DayNight.NoActionBar">
        <item name="android:background">#00000000</item>
        <item name="android:windowBackground">#00000000</item>
        <item name="android:windowSwipeToDismiss">false</item>
    </style>
    

    【讨论】:

      【解决方案3】:

      消除 api 'com.android.support:appcompat-v7:27.+'并替换为implementation "androidx.appcompat:appcompat:1.6.0"

      在写这篇文章的时候,1.6.0是目前androidx appcompat的最新版本,你可以查看最新版本here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-06
        相关资源
        最近更新 更多