指示表单使用Android Theme.Holo.Light的其他着色

时间:2014-06-11 22:32:32

标签: xamarin xamarin.forms

由于我不喜欢Xamarin的Android目标的黑暗主题,我在Manifest.xml中使用它切换到全息照明:

按钮和标签显示正确的颜色时,如此创建的菜单不会:

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

菜单TableView在浅灰色背景上显示白色文本。很难读。

我可以指示Xamarin.Forms一致地切换颜色吗?

1 个答案:

答案 0 :(得分:13)

要在Xamarin Forms中实现Android特定平台样式,我在我的项目中执行了以下操作:

  1. 使用http://jgilfelt.github.io/android-actionbarstylegenerator/
  2. 创建了我想要的UI颜色设计
  3. 下载zip文件并将资源复制到Relevant Drawable文件夹中的特定于平台的Android目录。
  4. 将values_example.xml重命名为values文件夹中的Styles.xml。将名称更改为我想要的主题的名称以及我想在我的案例中使用的android holo主题基础父对象holo.light,我的Styles.xml示例如下所示。
  5. 从我的Android活动中引用样式并瞧瞧。
  6. <强> Style.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
        {
        }