以编程方式创建具有大纲样式的MaterialButton

Pet*_*ter 11 android android-layout material-design androidx

我会以编程方式创建一个按照设计指南中定义的按钮:https://material.io/design/components/buttons.html#outlined-button,如下所示:

在此输入图像描述

在XML中我可以使用这段布局xml来做到这一点:

<com.google.android.material.button.MaterialButton
    android:id="@+id/buttonGetStarted"
    style="@style/Widget.MaterialComponents.Button.OutlinedButton"
    android:text="@string/title_short_intro" />
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是一个示例,说明如何使用Java代码执行此操作?我尝试过以下方法:

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

但这不会导致大纲变体:

在此输入图像描述

小智 8

您可以在下面使用:

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

  • `R.attr.borderlessButtonStyle` 不会创建 **轮廓按钮**。我认为正确的属性是“R.attr.materialButtonOutlinedStyle” (2认同)