c# – Xamarin表单:如何更改工具栏中“后退”符号的颜色
我想更改工具栏上后面符号的颜色,该工具栏当前是工具栏的黑色.为了清晰起见,这里是左上角带有“后退”箭头的屏幕截图.我已经更改了文本和背景的颜色,如屏幕截图所示.
Screenshot: Contentpage with black “back” arrow 该项目在Client,Client.Android和Client.iOS中进行了拆分. 如果有任何遗漏,我会尝试将其粘贴在这里. MasterDetailsPage.xaml.cs: public partial class MasterDetailPage1: MasterDetailPage { public MasterDetailPage1() { this.InitializeComponent(); this.MasterPage.ListView.ItemSelected += this.ListView_ItemSelected; } protected override void OnChildAdded(Element child) { if(child is NavigationPage page) { page.BarBackgroundColor = Color.FromHex("343A40"); page.BackgroundColor = Color.FromHex("343A40"); page.BarTextColor = Color.FromHex("FFFFFF"); } base.OnChildAdded(child); } } ReportConfigurationPage.xaml.cs <?xml version="1.0" encoding="utf-8" ?> <ContentPage x:Class="Company.Client.Views.ReportConfigurationPage" xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"> <ContentPage.Content> <ScrollView x:Name="ScrollView" BackgroundColor="White"> <StackLayout x:Name="BaseStackLayout" Orientation="Vertical"> <!-- Input controls --> </StackLayout> </ScrollView> </ContentPage.Content> </ContentPage> 更新: <?xml version="1.0" encoding="utf-8" ?> <resources> <style name="DrawerArrowStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle"> <item name="spinBars">true</item> <item name="color">#FFFFFF</item> </style> <style name="MainTheme" parent="MainTheme.Base"> </style> <!-- Base theme applied no matter what API --> <style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <!--If you are using revision 22.1 please use just windowNoTitle. Without android:--> <item name="windowNoTitle">true</item> <!--We will be using the toolbar so no need to show ActionBar--> <item name="windowActionBar">false</item> <!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette --> <!-- colorPrimary is used for the default action bar background --> <item name="colorPrimary">#FF0000</item> <!-- colorPrimaryDark is used for the status bar --> <item name="colorPrimaryDark">#219198</item> <!-- colorAccent is used as the default value for colorControlActivated which is used to tint widgets --> <item name="colorAccent">#219198</item> <!-- You can also set colorControlNormal,colorControlActivated colorControlHighlight and colorSwitchThumbNormal. --> <item name="colorControlHighlight">#219198</item> <item name="windowActionModeOverlay">true</item> <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> <item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item> </style> <style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog"> <item name="colorAccent">#FF4081</item> </style> </resources> 解决方法
Android中有一个名为
Material design的概念.
由于Xamarin在Xamarin.Android中采用了Native Java Android Behavior,因此Android应用程序在其styles.xml文件中选择主题并使用该样式设置条形背景颜色. 但当然,有一种解决方法.无论您在Android方面需要做哪些更改,您都必须在样式文件中更新它,例如: <?xml version="1.0" encoding="utf-8" ?> <resources> <style name="MyTheme" parent="MyTheme.Base"> </style> <style name="DrawerArrowStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle"> <item name="spinBars">true</item> <item name="color">#FFFFFF</item> </style> <style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="colorPrimary">#003399</item> <item name="colorPrimaryDark">#003399</item> <item name="colorControlHighlight">#003399</item> <item name="colorAccent">#012348</item> <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> </style> </resources> 此处颜色的变化将直接反映在那里,例如ColorPrimary是您的工具栏背景颜色(BarBackgroundColor). UPDATE <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/toolbar" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" app:theme="@style/ToolbarTheme" > </android.support.v7.widget.Toolbar> 然后得到这样的工具栏: var toolbar=yourActivityContext.Window.DecorView.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar); toolbar.SetBackgroundColor(Android.Graphics.Color.Your_Color); //In case of hex color toolbar.SetBackgroundColor(Android.Graphics.Color.ParseColor("#ebebeb")); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |