Цвет фона панели инструментов Xamarin Forms Android AppCompatActivity не меняется

В моем проекте Xamarin Forms Android мне нужно изменить ToolBar Title color и background color. Я испробовал множество обходных путей, предложенных в Google, но, к сожалению, не могу найти правильное решение для себя.

Что мне нужно

введите здесь описание изображения

Что я получаю Теперь это введите здесь описание изображения

используя приведенные ниже коды

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);

кто-нибудь, пожалуйста, помогите мне решить эту проблему и заставить меня получить то, что мне нужно, заранее спасибо


person Jamal    schedule 13.04.2018    source источник
comment
В вашем методе OnCreate где находится TabLayoutResource = Resource.Layout.Tabbar;ToolbarResource = Resource.Layout.Toolbar; ? Вы забыли это?   -  person Robbit    schedule 16.04.2018
comment
@JoeLv-MSFT Спасибо, что помните, я добавил ToolbarResource = Resource.Layout.Toolbar; эту строку в OnCreate(), тогда я получаю то, что мне нужно, кроме Back button. Панели инструментов background color и title color изменились, но кнопка «Назад» по-прежнему черного цвета.   -  person Jamal    schedule 16.04.2018
comment
Привет, все еще не можешь изменить цвет кнопки «Назад»?   -  person Robbit    schedule 16.04.2018


Ответы (1)


В своем классе приложения (PCL) добавьте их, чтобы изменить цвет кнопки «Назад»:

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

Я сделал для вас демонстрацию .

Обновлять:

Из здесь , как сказал @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>
person Robbit    schedule 16.04.2018
comment
Я пробовал с вашим кодом, но он меняет background color панели навигации, а не back button. - person Jamal; 16.04.2018
comment
@Есть ли способ изменить цвет кнопки «Назад» на белый? - person Jamal; 16.04.2018
comment
По умолчанию это белый цвет, я думаю, должен быть способ изменить его цвет, я попробую и оставлю вам комментарий. - person Robbit; 16.04.2018
comment
Привет! здесь, это хорошо работает. Я обновил свой гитхаб. - person Robbit; 16.04.2018
comment
Он работает хорошо; Я могу изменить цвет кнопки «Назад», используя код <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> <style name = "DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle"> <item name="color">#FFFFFF</item> </style> ниже. - person Jamal; 16.04.2018