如何在我的Xamarin应用程序中使用Holo Light主题

时间:2013-12-04 17:55:05

标签: android xamarin android-theme

我正在尝试让我的应用使用Holo.Light主题。我为Holo创建了一个自定义主题并将其放入

资源的开发\值-V11 \ FsmTheme.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>
    <style name="FsmTheme" parent="@android:style/Theme.Holo.Light">
    </style>
</resources>

我还为旧版本创建了一个并将其放入

资源的开发\值\ FsmTheme.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>
    <style name="FsmTheme" parent="@android:style/Theme.Light.NoTitleBar">
    </style>
</resources>

然后我将其添加到我的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" android:versionCode="001" android:versionName="001" package="futurestate.app.droid">
    <uses-sdk android:minSdkVersion="12" android:targetSdkVersion="14" />
    <application android:label="FutureState App Demo" android:icon="@drawable/Icon" Theme="@style/FsmTheme" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>

我不确定我还需要做些什么才能让主题在应用中占据。

enter image description here

2 个答案:

答案 0 :(得分:14)

您可以使用属性修改AndroidManifest.xml中的值,例如,这会将主题更改为全息灯:

[Activity(
    Label = "Foobar",
    MainLauncher = true,
    Theme = "@android:style/Theme.Holo.Light"
)]
public class MainActivity : Activity { ... }

您也可以在应用程序级别执行此操作。

但是对于您的具体问题,您似乎正在命名样式文件FsmTheme.xml。那是不对的。您必须为任何样式资源styles.xml命名,因此如果您将文件重命名为Resources/values/styles.xmlResources/values-v11/styles.xml,一切都应该按预期工作。

答案 1 :(得分:5)

故障就在这条线上。

<application android:label="FutureState App Demo" android:icon="@drawable/Icon" Theme="@style/FsmTheme" />

其中一些教程显示

Theme="@style/ThemeName"

但实际上你应该将结构与元素的其余部分

相同
android:theme="@style/ThemeName"

所以最后的结构将会读取

<application android:label="FutureState App Demo" android:icon="@drawable/Icon" android:theme="@style/FsmTheme" />