Xamarin表单自定义主题不起作用

时间:2016-03-02 17:51:43

标签: android xamarin themes android-theme xamarin-forms

我有一个使用Xamarin Forms 2.0的Android应用。我制作了一个自定义主题来设置一些颜色。我创建了这些文件:

Resources / values / styles.xml(AndroidResource)

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <style name="SmartbitLight" parent="SmartbitLight.Base">

  </style>

  <style name="SmartbitLight.Base" parent="Theme.AppCompat.NoActionBar">
    <item name="colorPrimary">@color/blueLight</item>
    <item name="colorPrimaryDark">@color/blueDark</item>
    <item name="colorAccent">@color/grey</item>
    <item name="android:windowBackground">@color/white</item>
    <item name="android:textColorPrimary">@color/white</item>
    <item name="android:statusBarColor">@color/blue</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
  </style>
</resources>

Resources / values-v21 / styles.xml(AndroidResource)

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <style name="SmartbitLight" parent="SmartbitLight.Base">

  </style>
</resources>

Resources / values / colors.xml(AndroidResource)

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <color name="blueLight">#3cc1f1</color>
  <color name="blue">#33a4cd</color>
  <color name="blueDark">#33a4cd</color>
  <color name="grey">#7d7d7d</color>
  <color name="white">#ffffff</color>
</resources>

然后我有一个MainActivity,我把这个主题连接到app:

[Activity(
    Label = "Smartbit", 
    Icon = "@drawable/icon", 
    MainLauncher = true, 
    ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation,
    Theme = "@style/SmartbitLight")]
public class MainActivity : FormsAppCompatActivity

这不能正常工作:应用栏是白色而不是预期的蓝色,以及&#39; android:windowBackground&#39;将我的Entry控件的文本和边框也变为白色。

2 个答案:

答案 0 :(得分:0)

尝试在清单中添加主题名称(SmartbitLight),如下所示:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.test">
    <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="23" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:label="test" android:theme="@style/SmartbitLight"></application>
</manifest>

路径:your_app / Droid / Properties / AndroidManifest.xml

答案 1 :(得分:0)

我设法让自定义主题与appbar和所有内容的所有颜色一起使用。我创建了一个toolbar.axml文件,并在我的FormsAppCompatActivity中注册它,如下所述:https://blog.xamarin.com/material-design-for-your-xamarin-forms-android-apps/