我正在通过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应用于整个应用程序(写在清单中)。 我也尝试从AppCompat主题而不是Material派生,但结果是相同的。该应用程序针对API27进行了编译,最低要求为API21。我已经尝试过模拟器运行所有受支持的API映像,而没有任何问题。
答案 0 :(得分:0)
首先,我建议您开始使用appcompat库以实现向后兼容性以及它在您的应用程序check here中必须具备的许多其他重要内容
然后开始使用appcompat工具栏,例如this
然后关注this
如有疑问或问题,请随时回复