C# Xamarin:如何在运行时将以下android主题应用于我的活动?
我有以下活动将主题指定为属性C# Xamarin:如何在运行时将以下android主题应用于我的活动?,c#,android,xamarin,android-activity,xamarin.android,C#,Android,Xamarin,Android Activity,Xamarin.android,我有以下活动将主题指定为属性 [Activity(Label = "PermissionsActivity", Theme = "@android:style/Theme.Translucent.NoTitleBar")] public class PermissionsActivity: Activity 这很有效,但如何在运行时应用相同的方法?可以在OnCreate中调用SetTheme。我可以看到SetTheme接受一个资源id整数。我很难找到上述主题对应的Xamarin.Android
[Activity(Label = "PermissionsActivity", Theme = "@android:style/Theme.Translucent.NoTitleBar")]
public class PermissionsActivity: Activity
这很有效,但如何在运行时应用相同的方法?可以在
OnCreate
中调用SetTheme
。我可以看到SetTheme接受一个资源id整数。我很难找到上述主题对应的Xamarin.Android常量。请帮助将主题添加到资源文件夹下的style.xml
文件中,然后从资源中以int
<style name="MyTheme" parent="Theme.Translucent.NoTitleBar">
</style>
在onCreate方法中添加以下代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Call setTheme before creation of any(!) View.
setTheme(android.R.style.Theme_Dark);
// ...
setContentView(R.layout.main);
当您在android项目的资源下的任何文件夹中添加主题时,Visual studio所做的是在资源文件夹下的ResourceDesigner.cs文件中创建相应的int值 现在,在运行时,当您需要将它们添加到代码中时,它们可以按如下方式使用:
- 如果资源是一种样式,则可在
resource.style.YourResourceName
- 如果资源是一个维度,那么它可以在
resource.Dimen.YourResourceName
- 如果资源是字符串,那么它可以在
resource.string.YourResourceName
- 如果资源是可绘制文件夹下的图像,则可在
resource.drawable.YourResourceName
- 如果资源是mipmap文件夹下的图像,那么它可以在
中找到,依此类推resource.mipmap.YourResourceName
this.SetTheme(Resource.Style.MyTheme);
在这样一个片段中:
this.Activity.SetTheme(Resource.Style.MyTheme);
希望这有帮助
如有疑问,请回复
this.Activity.SetTheme(Resource.Style.MyTheme);