Игнорируется параметр Android TextView defStyle?

#c# #android #mono #textview #xamarin.android

#c# #Android #моно #textview #xamarin.android

Вопрос:

Обратите внимание, что я использую Mono для Android

У меня есть список элементов, которые можно расширить, нажав кнопку «Еще» в нижней части списка. Список определен в XML, но кнопка «Еще» — это просто интерактивное текстовое представление, которое добавляется в нижнюю часть списка через addFooterView. Я пытаюсь применить заранее определенный стиль к текстовому представлению, созданному во время выполнения, но он не работает.

 mMoreProductsButton = new TextView(this, null, Resource.Style.more_button);
mMoreProductsButton.Text = "More";
mMoreProductsButton.Click  = new EventHandler(MoreProductsButton_Click);
mListView.AddFooterView(mMoreProductsButton);
  

Документация TextView показывает эту подпись: TextView(Context context, AttributeSet attrs, int defStyle)

defStyle определяется в документации как стиль по умолчанию для применения к представлению. Пример, который я видел в другом месте, передавал null как AttributeSet, но я не уверен, действительно ли это или связано с моей проблемой.

Я обнаружил эту ошибку и не уверен, связана ли она и актуальна: http://code.google.com/p/android/issues/detail?id=12683

Любые предложения приветствуются!

Ответ №1:

Я также искал ответ на этот вопрос. Похоже, это ошибка Android, потому что я не нашел способа применения стиля к созданию представлений. Почему вы не хотите раздувать свой TextView?
Вот так:

layout/my_view.xml

 <TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:style="@style/more_button" />
  

Активность

 TextView mMoreProductsButton = (TextView) getLayoutInflater().inflate(R.layout.my_view, null, false);
  

Извините, я не знаю, работает ли это в Mono.

Комментарии:

1. Это возможно в Mono, и я делаю это во многих других местах, где я собираю сложные макеты. В этом случае казалось расточительным создавать XML-ресурс, а затем загружать и раздувать его, когда это всего лишь простой TextView. Мне странно, что платформа Android не поддерживает динамическое создание стилизованных элементов.