android – 带有误色标题栏的AppCompat对话主题 – Bug?

我有一个LoginActivity,我使用这样的AppCompat主题
<activity
            android:name=".LoginActivity"
            android:theme="@style/Theme.AppCompat.Light.Dialog"
            android:label="Login" />

我知道在这文章中Google还没有在DIALOGS的AppCompat库中添加Material Themes,所以我认为它会回归到Holo.相反,这就是我得到的:

请记住,我没有使用AppCompat工具栏.在Activity中,我甚至没有引用ActionBar.你在上面看到的是认行为,但我无法弄清楚它的来源.这可能是个错误吗?

(另外,EditText字段没有使用应用的主要颜色着色.)

解决方法

注意:请参阅我的最终编辑,以获得最佳解决方

对于它的价值,我认为这是一个错误.但是,我发现的有效解决方法是使用@ 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>

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...