2017-02-06 19 views
0

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

<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。

+0

您必须定义自定义样式,然后添加与您应用的颜色重音相符的重音颜色。 – tahsinRupam

回答

2

这里是一个示例代码

<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> 

定义风格,同时在活动开始diaolog。

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

我想知道为什么' @ style/Theme.Dialog'不工作 –

+0

我编辑了我的答案。为什么你必须使用Theme.Dialog?直接引用alertDialog的样式名称更容易吗? – tahsinRupam

+0

我使用的对话框不是alertdialog –