У меня есть контейнер LinearLayout, который я заполняю с помощью TextViews.Я создал стиль для этих TextViews в styles.xml.Проблема в том, что поле не применяется, когда я динамически создаю текстовые представления в коде и применяю стиль.Все остальные значения из стиля на самом деле работают.
Я работаю в VS 2019, проект является родным приложением Xamarin для Android (не форм).Когда я заполняю LinearyLayout вручную с помощью TextViews и применяю стиль, он работает правильно, поле применяется.Это только не работает, когда TextView создается в коде позади.Также можно установить маржу программно, используя функции LayoutParams и SetMargin.Хотя я бы предпочел, чтобы часть стиля, определенного в xml, и один маленький бит в коде были позади.
Это стиль TextView:
<style name="TextView.Tag" parent="@android:style/Widget.TextView">
<item name="android:background">@color/ColorSecondary</item>
<item name="android:paddingHorizontal">4dp</item>
<item name="android:paddingVertical">2dp</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">10dp</item>
<item name="android:textColor">@color/ColorTextOnSecondary</item>
<item name="android:layout_marginRight">8dp</item>
</style>
Это контейнер LinearLayout:
<LinearLayout
android:id="@+id/TeaTagsLayoutContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="4dp"
android:layout_below="@id/TeaCategoryLayout"
android:layout_toRightOf="@id/TeaCategoryImage">
</LinearLayout>
Это код, который добавляет, создает текстовое представление и помещает его в контейнер:
TextView tv = new TextView(context, null, 0, Resource.Style.TextView_Tag)
{
Text = "tag text";
};
tagsLayoutContainer.AddView(tv);
Я ожидаю, что весь стиль, определенный в style.xml, будет работать с динамически созданными TextViews.
Спасибо за чтение.