如何使 Android 中的材质切换按钮表现得像 Switch?

Pul*_*kit 2 android android-button kotlin material-components material-components-android

我正在使用以下材料设计库

implementation "com.google.android.material:material:1.2.0-alpha01"

这就是我实现材质切换按钮的方式

<com.google.android.material.button.MaterialButtonToggleGroup
    id="@+id/toggleBtnGroup"
    app:singleSelection="true"
    android:id="@+id/toggle_button_group"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:checkedButton="@+id/leftAlign">

    <com.google.android.material.button.MaterialButton
        id="@+id/leftAlign"
        style="?attr/materialButtonOutlinedStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Left"/>
    <com.google.android.material.button.MaterialButton
        id="@+id/centerAlign"
        style="?attr/materialButtonOutlinedStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Center"/>
    <com.google.android.material.button.MaterialButton
        id="@+id/rightAlign"
        style="?attr/materialButtonOutlinedStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Right"/>

</com.google.android.material.button.MaterialButtonToggleGroup>
Run Code Online (Sandbox Code Playgroud)

现在,当我选择其他按钮时,一次仅选择 1 个按钮,如何确保如果用户再次选择所选按钮,它不会被取消选择。因此本质上,我希望在特定时间至少选择这些按钮之一。材质按钮切换

一个人会怎样做呢?

Gab*_*tti 5

您可以使用该app:selectionRequired属性。
就像是:

    <com.google.android.material.button.MaterialButtonToggleGroup
        app:singleSelection="true"
        app:selectionRequired="true"
        app:checkedButton="@id/..."
        ..>
Run Code Online (Sandbox Code Playgroud)

您还可以使用以下方法setSelectionRequired

buttonGroup.setSelectionRequired(true);
Run Code Online (Sandbox Code Playgroud)

此属性至少需要版本1.2.0-alpha03