2017-09-21 148 views
1

即使在Google中,我也無法找到如何將Android項目設置爲Light Theme。Xamarin Forms在Light中設置Android

'虛線'按鈕背後的工具欄保持黑色,我如何獲得它的白色?

我的意思是當你按右上角的'虛線'按鈕時彈出的導航。

enter image description here

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

    <color name="ListViewSelected">#ff9933</color> 
    <color name="ListViewHighlighted">#E39696</color> 

    <style name="MainTheme" parent="MainTheme.Base"> 
    <item name="android:colorPressedHighlight">@color/ListViewSelected</item> 
    <item name="android:colorLongPressedHighlight">@color/ListViewHighlighted</item> 
    <item name="android:colorFocusedHighlight">@color/ListViewSelected</item> 
    <item name="android:colorActivatedHighlight">@color/ListViewSelected</item> 
    <item name="android:activatedBackgroundIndicator">@color/ListViewSelected</item> 
    </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">#ff9933</item> 
    <!-- colorPrimaryDark is used for the status bar --> 
    <item name="colorPrimaryDark">#ff9933</item> 
    <!-- colorAccent is used as the default value for colorControlActivated 
     which is used to tint widgets --> 
    <item name="colorAccent">#ff9933</item> 
    <!-- You can also set colorControlNormal, colorControlActivated 
     colorControlHighlight and colorSwitchThumbNormal. --> 
    <item name="windowActionModeOverlay">true</item> 

    <item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item> 
    </style> 

    <style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog"> 
    <item name="colorAccent">#ff9933</item> 
    </style> 
</resources> 

回答

1

您需要在droid/resource/styles.xml中創建自定義主題。同時還需要在您的MainActivity應用這個主題

應用主題上MainActivity

[Activity(Label = "YourProject.Droid", Icon = "@drawable/icon", Theme = "@style/MyTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] 
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity 

添加在Style.XML自定義主題文件

<?xml version="1.0" encoding="UTF-8"?> 
<resources> 
    <style name="MyTheme" parent="MyTheme.Base"> 
    </style> 
    <!-- Base theme applied no matter what API --> 
    <style name="MyTheme.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">#2196F3</item> 
     <!-- colorPrimaryDark is used for the status bar --> 
     <item name="colorPrimaryDark">#1976D2</item> 
     <!-- colorAccent is used as the default value for colorControlActivated 
      which is used to tint widgets --> 
     <item name="colorAccent">#FF4081</item> 
     <!-- You can also set colorControlNormal, colorControlActivated 
      colorControlHighlight and colorSwitchThumbNormal. --> 
     <item name="windowActionModeOverlay">true</item> 
     <item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item> 
     <item name="android:actionBarPopupTheme">@style/CustomActionBarPopupTheme</item> 
    </style> 
    <style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog"> 
     <item name="colorAccent">#FF4081</item> 
    </style> 
    <style name="CustomActionBarPopupTheme" parent="android:ThemeOverlay.Material.Light"> 
     <item name="android:colorBackground">#FFFFFF</item> 
     <item name="android:textColor">#000000</item> 
    </style> 
</resources> 
+0

我有你發佈的內容,但toolbaritem列表的背景保持黑暗。 – user7849697

+0

@ user7849697,我爲工具欄主題添加了CustomActionBarPopupTheme。請看我更新的答案。並以主風格進行配置。 –

+0

我使用了您提供的代碼,但仍然保持黑暗。觀看我上傳的圖片。 – user7849697

0

我相信你會過得更好寫的特定於平臺的代碼一點點:

的Android

在您MainActivity.cs在重寫編寫代碼OnCreate方法代碼如下所示:

protected override void OnCreate(Bundle bundle) 
     { 
      TabLayoutResource = Resource.Layout.Tabbar; 
      ToolbarResource = Resource.Layout.Toolbar; 

      base.OnCreate(bundle); 

      global::Xamarin.Forms.Forms.Init(this, bundle);    
      LoadApplication(new App()); 
      Window.SetStatusBarColor(Android.Graphics.Color.Argb(255, 0, 0, 0)); //here 
     } 
+0

是的,我知道怎麼改工具欄的顏色,但如果按下'虛線'按鈕,我正在討論toolbaritems背景! – user7849697