注意:请查看我的最终编辑,可能是最佳解决方案
就我所知,这是一个bug。然而,我发现了一个有效的解决方法,那就是使用@style/Base.Theme.AppCompat.Light.Dialog.FixedSize
。根据你的屏幕截图,我认为这对你也有用。但是,我还没有测试调色板着色。
从我的测试中可以看出,这个方法在扩展灰色边框的同时,仍然可以使用AppCompat和v21。
编辑:其中一个副作用是现在所有的对话框活动看起来都是相同的大小,这可能不适合你。另外,我还没有想出如何删除标题——requestWindowFeature和supportRequestWindowFeature与Window.FEATURE_NO_TITLE似乎会导致问题。
java.lang.RuntimeException: Unable to start activity ComponentInfo{myclass}:
android.util.AndroidRuntimeException: requestFeature() must be called before adding content
即使我之前尝试过放在super.onCreate之前或之后,但肯定是在setContentView之前。编辑#2:通过XML主题设置移除标题,由于没有标题,所以不会出现奇怪的灰色框,这意味着您可以取消FixedSize设置,对话框将像早期版本一样包裹其内容。
<style name="MyActivityDialogTheme" parent="Base.Theme.AppCompat.Light.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
编辑 #3:您还可以简单地去掉灰色背景 - 这可能是最好的解决方案,因为它不需要Base前缀:
<style name="MyTitledActivityDialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="android:windowNoTitle">false</item>
<item name="android:windowTitleBackgroundStyle">@android:color/transparent</item>
<item name="windowActionBar">false</item>
</style>
Theme.AppCompat.Light.Dialog
绝对是扩展自android:Theme.Material.Light.Dialog
。您使用什么代码来创建对话框活动? - ianhanniballake