Xamarin表单Android AppCompatActivity工具栏背景颜色没有变化

时间:2018-04-13 07:41:38

标签: android xamarin.android android-toolbar android-theme appcompatactivity

在我的 Xamarin Forms Android 项目中,我需要更改工具栏 Title colorbackground color我尝试过在Google中建议的许多变通办法但是很遗憾,我无法找到正确的解决方案

我需要的是

enter image description here

我得到了什么现在是enter image description here

使用下面的代码

MainActivity.cs

[Activity(Label = "Sample.Droid", Icon = "@mipmap/icon_launcher", Theme = "@style/MyTheme")]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
            protected override void OnCreate(Bundle bundle)
            {
                base.OnCreate(bundle);

                global::Xamarin.Forms.Forms.Init(this, bundle);          

                LoadApplication(new App());
            }   


    }

styles.xml

    <?xml version="1.0" encoding="UTF-8"?>
<resources>

    <style name="MyTheme" parent="MyTheme.Base">
    </style>

    <style name="MyTheme.Base" parent="Theme.AppCompat.NoActionBar"> 

        <item name="windowNoTitle">true</item>     
        <item name="windowActionBar">false</item>    
        <item name="colorPrimary">#cc66ff</item>  
        <item name="colorPrimaryDark">#1976D2</item>          
        <item name="colorAccent">#FF4081</item>  

    </style>

Toolbar.axml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.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:background="#cc66ff"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

我尝试了什么

我尝试更改android:background中的Toolbar.xaml但它对它没有任何影响;它总是在工具栏中显示深色背景

我也尝试使用以下代码 MainActivity.cs ,这会隐藏工具栏中的标题

 var toolbar = FindViewById<Toolbar>(Resource.Id.toolbar);             
              SetSupportActionBar(toolbar);

任何人都请指导我解决这个问题并让我得到我需要的东西提前致谢

1 个答案:

答案 0 :(得分:1)

在你的应用类(PCL)中,添加这些以更改后退按钮的颜色:

NavigationPage naviPage =  new NavigationPage( new App13.MainPage());
MainPage = naviPage;
naviPage.BarBackgroundColor = Color.FromHex("#cc66ff");

我为你做了demo

更新

来自here,就像@MarlonRibeiro所说,你可以使用drawerArrowStyle将后退按钮的颜色更改为白色(我已经在github上更新了我的项目):

 <style name="MainTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
    </style>
<style name="DrawerArrowStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle">
    <item name="color">#FFFFFF</item> 
</style>