我正在通过 Xamarin 开发 Android 应用程序,但我遇到了一个我真的无法解决的问题。我已将工具栏设置为使用工具栏上带有白色文本的 Theme.Material.Light.DarkActionBar。工具栏还包含向上箭头和操作图标,均为白色。
当我在模拟器上调试应用程序时,它工作正常,颜色正确。 当我在运行 Android 5.0 的旧 Note3 上调试时,它也运行良好。 当我在运行 8.0 的 S7Edge 或运行 7.1 的 J7 上进行调试时,无论发生什么变化,工具栏标题都保持黑色。向上箭头和图标保持白色! 我不明白出了什么问题以及为什么行为不同。
styles.xml(这里我尝试强制使用白色)
<resources>
<style name="HomeTheme" parent="android:Theme.Material.Light.DarkActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:colorPrimary">@color/primary</item>
<item name="android:colorPrimaryDark">@color/primary_dark</item>
<item name="android:textColor">@color/primary_text</item>
</style>
<style name="ToolbarTheme" parent="android:ThemeOverlay.Material.Dark.ActionBar">
<item name="android:textColorPrimary">#ffffff</item>
<item name="android:textColorSecondary">#ffffff</item>
</style>
</resources>
除primary_text 为黑色外,所有颜色均为蓝色。蓝色工具栏始终正确显示。
toolbar.axml
<?xml version="1.0" encoding="utf-8" ?>
<Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/actionBarSize"
android:background="?android:attr/colorPrimary"
android:theme="@style/ToolbarTheme"/>
工具栏包含在布局中
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
并在OnCreate方法中调用
SetContentView(Resource.Layout.mylayout);
var toolbar = FindViewById<Toolbar>(Resource.Id.toolbar);
SetActionBar(toolbar);
ActionBar.Title = "Title";
ActionBar.SetDisplayHomeAsUpEnabled(true);
ActionBar.SetHomeButtonEnabled(true);
HomeTheme 应用于整个应用程序(它写在 list 中)。 我还尝试从 AppCompat 主题而不是 Material 派生,但结果是相同的。该应用程序是针对 API27 编译的,最低要求是 API21。我已经尝试过运行所有受支持的 API 镜像的模拟器,没有任何问题。
最佳答案
首先,我建议您开始使用 appcompat 库来实现向后兼容性,并且它是您的应用程序中必须具备的许多其他重要功能 check here
然后开始使用 appcompat 工具栏,例如 this
然后关注this
如有疑问或问题,请随时回复
关于java - 在物理设备上测试时工具栏标题保持黑色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51791339/