android - Theme.AppCompat.Light.Dialog如何在Android 6.0上使用?

标签 android android-activity android-appcompat appcompatactivity

我想显示看起来像对话框的 Activity 。我正在使用从 Theme.AppCompat.Light.Dialog 继承的主题来实现这一点。此解决方案在 Android 4.x 和 Android 5.x 上运行良好。不幸的是,在 Android 6 上它没有。我看到黑色背景而不是漂亮的透明度。

Android 6 on the left, Android 5 on the right

主题代码:

<style name="AppTheme.Popup" parent="Theme.AppCompat.Light.Dialog">
        <item name="windowNoTitle">true</item>
</style>

Activity 代码 - 刚刚从 AppCompatActivity 扩展

我正在尝试使用其他一些设置进行修复:

    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>

没有任何成功:(

最佳答案

我认为你需要子主题 Theme.AppCompat.Light.Dialog.Alert 而不是 Theme.AppCompat.Light.Dialog,所以你的主题会像:

<style name="AppTheme.Popup" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="windowNoTitle">true</item>
</style> 

关于android - Theme.AppCompat.Light.Dialog如何在Android 6.0上使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37434986/

相关文章:

android - FFMPEG 命令执行在 android 中花费太多时间

android - 如何共享元素从 fragment 过渡到 Activity

Android - Activity onStart

更新到 sdk 28 时出现 android gradle 错误

c# - xamarin 表单 - 更改所有轮播内容页面上的按钮文本

java - Flutter android 应用程序在签名发布后尝试调试时崩溃

android - 如何处理需要从多个 Activity 访问的数据?

android-studio - 如何解决: 'com.xxx.xxxx.MainActivity'不能少分配给 'android.app.Activity'

java - 如何修复错误包 android.support.v7 不存在?

Android: native 方法在哪个线程中运行?