我进行以下活动,将主题指定为属性
[Activity(Label = "PermissionsActivity", Theme = "@android:style/Theme.Translucent.NoTitleBar")]
public class PermissionsActivity: Activity
这很好用,但是如何在运行时应用呢?也许可以通过在SetTheme
中调用OnCreate
来实现。我可以看到SetTheme接受资源ID整数。我很难找到上述主题的相应Xamarin.Android常量。请帮助
答案 0 :(得分:1)
将主题添加到Resource文件夹下的style.xml
文件中,而不是以int
的身份从资源中访问主题
<style name="MyTheme" parent="Theme.Translucent.NoTitleBar">
</style>
设置活动
this.SetTheme(Resource.Style.MyTheme);
答案 1 :(得分:0)
在您的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);
答案 2 :(得分:0)
当您在android项目的资源下的任何文件夹中添加某个主题时,Visual Studio所做的就是在资源文件夹下的ResourceDesigner.cs文件内创建一个相应的int值。
现在在运行时中,当您需要将它们添加到代码中时,它们可以按如下方式使用:
Resource.Style.YourResourceName
中使用它Resource.Dimen.YourResourceName
中使用它Resource.String.YourResourceName
中使用它Resource.Drawable.YourResourceName
中使用它Resource.Mipmap.YourResourceName
中找到它,依此类推,等等。注意:这些属性始终是整数。
在您的情况下,因为它是一个主题(基本上是一种样式)
因此,您可以在活动中获得以下信息:
this.SetTheme(Resource.Style.MyTheme);
在一个片段中,像这样:
this.Activity.SetTheme(Resource.Style.MyTheme);
希望这会有所帮助,
在查询的情况下还原。