Как динамически создать кнопку материала? - PullRequest
1 голос
/ 19 июня 2019

Я пытаюсь создать кнопку материала динамически. Я добавил всю зависимость и все. Если я создаю его в XML-файле, он работает отлично, но когда я пытаюсь создать его динамически, он выдает ошибку

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

MaterialButton materialButton = new MaterialButton(context);
    LayoutParams layoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT, 
    LayoutParams.WRAP_CONTENT);
    myLayout.addView(materialButton, layoutParams);```

Мой стиль XML выглядит так:

<style name="AppTheme" 
parent="Theme.MaterialComponents.Light.NoActionBar">

Это дает Ошибка во время выполнения "java.lang.IllegalArgumentException: стиль для этого компонента требует, чтобы тема вашего приложения была Theme.MaterialComponents (или потомок)."

Ответ найден

Я указал неверный контекст. У меня был контроллер просмотров, и я пытался создать таможенные представления, расширяющие контроллер. Я передал контекст BaseController (в обычном представлении не было проблем), который был проблемным контекстом, который должен был иметь BaseActivity.

1 Ответ

0 голосов
/ 19 июня 2019

Просто передайте стиль в конструкторе Material Button ..

    MaterialButton materialButton = new MaterialButton(this, null, R.attr.borderlessButtonStyle);
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
    linearHome.addView(materialButton, layoutParams);
    String buttonText = "Button Name";
    materialButton.setText(buttonText);
    materialButton.setTextColor(Color.RED);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...