Xamarin: Как применить следующую тему Android для моей деятельности во время выполнения? - PullRequest
0 голосов
/ 05 октября 2018

У меня есть следующее действие, которое определяет тему в качестве атрибута

[Activity(Label = "PermissionsActivity", Theme = "@android:style/Theme.Translucent.NoTitleBar")]
public class PermissionsActivity: Activity

Это хорошо работает, но как я могу применить то же самое во время выполнения?Может быть, позвонив SetTheme в OnCreate.Я вижу, что SetTheme принимает идентификатор целого числа ресурса.Мне трудно найти соответствующую константу Xamarin.Android для вышеупомянутой темы.Пожалуйста, помогите

Ответы [ 3 ]

0 голосов
/ 05 октября 2018

Добавьте этот код в свой метод 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);

Для справки проверьте эту ссылку

0 голосов
/ 05 октября 2018

Когда вы добавляете какую-либо тему в любую папку в рамках ресурсов проекта Android, Visual Studio создает соответствующее значение int в файле ResourceDesigner.cs в папке ресурсов.

Теперь в среде выполнения, когдаВы должны добавить их в свой код, они доступны следующим образом:

  • Если ресурс является стилем, то он доступен в 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);

Надеюсь, это поможет,

Возврат в случае запросов.

0 голосов
/ 05 октября 2018

Добавьте вашу тему в style.xml файл в папке Resource, затем получите доступ к ней из ресурса как int

<style name="MyTheme" parent="Theme.Translucent.NoTitleBar">
</style>

Настройка в активности

this.SetTheme(Resource.Style.MyTheme);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...