Кнопка для стиля Android с ContextThemeWrapper - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь заполнить таблицу во время выполнения элементами Button, к которым я пытаюсь применить стиль, определенный в styles.xml к.

<style name="BlueButtonStyle">
    <item name="android:textSize">20sp</item>
    <item name="android:padding">15dp</item>
    <item name="android:layout_margin">5dp</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_weight">1</item>
    <item name="android:background">@drawable/gradient_button</item>
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:textAllCaps">false</item>
</style>

Я уже использую этот стильна некоторых статических кнопках, где я могу определить style="@style/BlueButtonStyle", поэтому я знаю, что сам стиль работает.Это выглядит так:

enter image description here

Кнопки генерируются в цикле следующим образом:

val contextWrapper = ContextThemeWrapper(context, R.style.BlueButtonStyle)
val btn = Button(contextWrapper).apply { text = "Unknown" }

Однако результат не 'не выглядит так, как должно:

enter image description here

Цвет шрифта #FFFFFF был применен, но не более того.Он также не имеет того же серого фона, который был бы у неустановленной кнопки.

Как правильно оформить программно сгенерированную кнопку?Я надеялся избежать раздувания xml.Решение должно быть обратно совместимо с min android 6.0.

1 Ответ

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

Я не знаю kotlin, но на Java вы можете сделать так:

ContextThemeWrapper wrapper = new ContextThemeWrapper(this,R.style.BlueButtonStyle);
Button btn = new Button(wrapper, null, 0); // note this constructor
btn.setText("Unknown");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...