【问题标题】:Android colorAccent is ignored in the DialogAndroid colorAccent 在对话框中被忽略
【发布时间】:2017-06-23 04:08:25
【问题描述】:

我正在使用自定义布局创建一个对话框,但在布局中 colorAccent 被完全忽略并替换为默认青色。我根据this answer更改了我的主题。但仍然无法正常工作。我可以通过其构造函数在创建对话框时添加主题,但我只想按主题执行此操作,因此它会影响我的应用程序中的每个对话框。感谢任何帮助,感谢这里是我的主题。

<style name="AppTheme" parent="AppTheme.Base">
    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowAllowEnterTransitionOverlap">true</item>
    <item name="android:windowAllowReturnTransitionOverlap">true</item>
    <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
    <item name="android:alertDialogTheme">@style/Theme.Dialog</item>
</style>

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="Theme.Dialog" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

我的对话框看起来像这个图像 Edittext 光标忽略了我的 colorAccent。

【问题讨论】:

  • 您必须定义自定义样式,然后添加与您的应用颜色相匹配的强调色。

标签: android android-dialog


【解决方案1】:

这是一个示例代码

<style name="DialogStyle" parent="Theme.AppCompat.Light.Dialog">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">match_parent</item>
        <item name="colorAccent">@color/colorPrimaryDark</item>
</style>

在活动中启动对话时定义样式。

Dialog dialog = new Dialog(mContext, R.style.DialogStyle);

【讨论】:

  • 我想知道为什么&lt;item name="android:alertDialogTheme"&gt;@style/Theme.Dialog&lt;/item&gt; 不起作用
  • 我已经编辑了我的答案。为什么你必须使用 Theme.Dialog ?直接引用 alertDialog 的样式名不是更容易吗?
  • 我使用的是对话框而不是 alertdialog
  • 我的主题父也是Theme.AppCompat.Light.Dialog.Alert
  • 抱歉,我有点糊涂了。那你为什么将父级用作“Theme.AppCompat.Light.Dialog.Alert”?你不应该用 parent="Theme.AppCompat.Light.Dialog" 代替 Dialog 吗?
猜你喜欢
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 2014-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多