Указание формам использовать другую раскраску для Android Theme.Holo.Light

Поскольку мне не нравится темная тема Xamarin для Android, я переключился на голографический свет, используя это в Manifest.xml:

While Button and Label appear correctly colored, menus created like so do not:

var navMenu = new TableView {
    Intent = TableIntent.Menu,
    Root = new TableRoot {

Появится меню TableView с белым текстом на светло-сером фоне. Очень тяжело читать.

Могу ли я указать Xamarin.Forms последовательно переключать цвета?


person SteAp    schedule 11.06.2014    source источник
comment
К вашему сведению: кнопки полупрозрачны и не меняются при переключении темы.   -  person ad1Dima    schedule 16.06.2014


Ответы (1)


Чтобы реализовать стиль платформы Android в Xamarin Forms, я сделал в своем проекте следующее:

  1. Создал цветовой дизайн пользовательского интерфейса, который я хотел, используя http://jgilfelt.github.io/android-actionbarstylegenerator/
  2. Загрузил zip-файл и скопировал ресурсы в каталог Android для конкретной платформы в соответствующих папках Drawable.
  3. Переименовал файл styles_example.xml в Styles.xml в папке значений. Изменил имя на имя темы, которую я хотел, и родительскую базу темы Android holo, которую я хотел использовать в моем случае holo.light, пример моего Styles.xml можно увидеть ниже.
  4. Ссылайтесь на стиль из My android activity и вуаля.

Стиль.xml:

 <resources>
  <style name="Theme.Splash"
    parent="android:Theme">
    <item name="android:windowBackground"> 
    </item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsTranslucent">false</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:backgroundDimEnabled">true</item>
  </style>

    <style name="Theme.Main" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarItemBackground">@drawable/selectable_background_example</item>
        <item name="android:popupMenuStyle">@style/PopupMenu.Example</item>
        <item name="android:dropDownListViewStyle">@style/DropDownListView.Example</item>
        <item name="android:actionBarTabStyle">@style/ActionBarTabStyle.Example</item>
        <item name="android:actionDropDownStyle">@style/DropDownNav.Example</item>
        <item name="android:actionBarStyle">@style/ActionBar.Solid.Example</item>
        <item name="android:actionModeBackground">@drawable/cab_background_top_example</item>
        <item name="android:actionModeSplitBackground">@drawable/cab_background_bottom_example</item>
        <item name="android:actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Example</item>
    </style>

    <style name="ActionBar.Solid.Example" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
        <item name="android:background">@drawable/ab_solid_example</item>
        <item name="android:backgroundStacked">@drawable/ab_stacked_solid_example</item>
        <item name="android:backgroundSplit">@drawable/ab_bottom_solid_example</item>
        <item name="android:progressBarStyle">@style/ProgressBar.Example</item>
    </style>

    <style name="ActionBar.Transparent.Example" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">@drawable/ab_transparent_example</item>
        <item name="android:progressBarStyle">@style/ProgressBar.Example</item>
    </style>

    <style name="PopupMenu.Example" parent="@android:style/Widget.Holo.Light.ListPopupWindow">
        <item name="android:popupBackground">@drawable/menu_dropdown_panel_example</item>   
    </style>

    <style name="DropDownListView.Example" parent="@android:style/Widget.Holo.Light.ListView.DropDown">
        <item name="android:listSelector">@drawable/selectable_background_example</item>
    </style>

    <style name="ActionBarTabStyle.Example" parent="@android:style/Widget.Holo.Light.ActionBar.TabView">
        <item name="android:background">@drawable/tab_indicator_ab_example</item>
    </style>

    <style name="DropDownNav.Example" parent="@android:style/Widget.Holo.Light.Spinner">
        <item name="android:background">@drawable/spinner_background_ab_example</item>
        <item name="android:popupBackground">@drawable/menu_dropdown_panel_example</item>
        <item name="android:dropDownSelector">@drawable/selectable_background_example</item>
    </style>

    <style name="ProgressBar.Example" parent="@android:style/Widget.Holo.Light.ProgressBar.Horizontal">
        <item name="android:progressDrawable">@drawable/progress_horizontal_example</item>
    </style>

    <style name="ActionButton.CloseMode.Example" parent="@android:style/Widget.Holo.Light.ActionButton.CloseMode">
        <item name="android:background">@drawable/btn_cab_done_example</item>
    </style>

  <!-- this style is only referenced in a Light.DarkActionBar based theme -->
    <style name="Theme.Example.Widget" parent="@android:style/Theme.Holo">
    </style>

</resources>

Код действия:

namespace Test.Droid
{
    [Activity(Label = "Test", ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize,Theme = "@style/Theme.Main")]

    public class MainActivity : AndroidActivity
    {
    }
person Chad Bonthuys    schedule 06.08.2014