gpt4 book ai didi

Android v21 Theme.Appcompat 颜色重音被忽略,对话框上没有填充

转载 作者:IT王子 更新时间:2023-10-28 23:42:40 25 4
gpt4 key购买 nike

我正在使用 Android 5 SDK 中的 ActionBarActivity,这是我用于 v21 的 theme.xml

<style name="AppTheme_Light" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:colorPrimary">@color/abc1</item>
<item name="android:colorPrimaryDark">@color/abc2</item>
<item name="android:colorAccent">@color/abc3</item>
</style>

但是颜色被忽略,并被默认的蓝绿色替换,所有对话框都没有填充。

Problem

此外,在自定义 toast 等其他地方也忽略了填充,问题仅出现在 Lollipop 设备中。

编辑:

填充问题是由 fitsSystemWindow 引起的,我使用
修复了它 this question. .

但强调色问题仍然存在,而且它不仅影响对话框,而且影响整个应用程序。

最佳答案

关于强调色。您正在使用 AppCompat 主题,因此您应该从主题内的命名空间中删除 Android。

<style name="AppTheme_Light" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/abc1</item>
<item name="colorPrimaryDark">@color/abc2</item>
<item name="colorAccent">@color/abc3</item>
</style>

关于对话框。 AppCompat 不支持它(据我所知)。
您可以尝试在 values-v21 文件夹中使用此样式:

<style name="Theme" parent="FrameworkRoot.Theme">
<item name="android:alertDialogTheme">@style/Theme.AlertDialog</item>
</style>

<style name="Theme.AlertDialog" parent="android:Theme.Material.Light.Dialog.Alert">
<item name="android:colorPrimary">@color/demo_primary_color</item>
<item name="android:colorPrimaryDark">@color/demo_colorPrimaryDark</item>
<item name="android:colorAccent">@color/theme_accent_1</item>
</style>

23/04/2015 更新:支持库 V.22.1

新的 support library v22.1 与 Dialog 一起使用。您可以使用 android.support.v7.app.AlertDialog或新的 AppCompatDialog .

例如:

import android.support.v7.app.AlertDialog

AlertDialog.Builder builder =
new AlertDialog.Builder(this, R.style.AppCompatAlertDialogStyle);
builder.setTitle("Dialog");
builder.setMessage("Lorem ipsum dolor ....");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();

并使用这样的样式:

<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="colorAccent">#FFCC00</item>
<item name="android:textColorPrimary">#FFFFFF</item>
<item name="android:background">#5fa3d0</item>
</style>

否则你可以在你当前的主题中定义:

<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- your style -->
<item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item>
</style>

然后在你的代码中:

 import android.support.v7.app.AlertDialog

AlertDialog.Builder builder =
new AlertDialog.Builder(this);

关于Android v21 Theme.Appcompat 颜色重音被忽略,对话框上没有填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26608390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com