Программно создать MaterialButton со стилем Outline - PullRequest
0 голосов
/ 31 августа 2018

Я бы хотел программно создать кнопку, как это определено в рекомендациях по дизайну здесь: https://material.io/design/components/buttons.html#outlined-button,, выглядящий так:

enter image description here

В XML я могу сделать это, используя этот фрагмент макета xml:

<com.google.android.material.button.MaterialButton
    android:id="@+id/buttonGetStarted"
    style="@style/Widget.MaterialComponents.Button.OutlinedButton"
    android:text="@string/title_short_intro" />

То, что я ищу, это пример, который показывает, как сделать это, используя код Java? Я пробовал следующее:

MaterialButton testSignIn = new MaterialButton( new ContextThemeWrapper( this, R.style.Widget_MaterialComponents_Button_OutlinedButton));
String buttonText = "Sign-in & empty test account";
testSignIn.setText( buttonText );

Но это не приводит к варианту схемы:

enter image description here

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

MaterialButton имеет strokeColor и strokeWidth, которые используются для установки контура.

val _strokeColor = getColorStateList(R.styleable.xxx_strokeColor)
val _strokeWidth = getDimensionPixelSize(R.styleable.xxx_strokeWidth, 0)

button = MaterialButton(context).apply {
    layoutParams = LayoutParams(MATCH_PARENT, WRAP_PARENT)
    strokeColor = _strokeColor
    strokeWidth = _strokeWidth
}
0 голосов
/ 25 декабря 2018

Вы можете использовать ниже:

MaterialButton testSignIn = new MaterialButton(context, null, R.attr.borderlessButtonStyle);
String buttonText = "Sign-in & empty test account";
testSignIn.setText(buttonText);
...