📌  相关文章
📜  materialbuttontogglegroup 取消选中双击 (1)

📅  最后修改于: 2023-12-03 14:44:10.220000             🧑  作者: Mango

使用MaterialButtonToggleGroup取消选中双击

MaterialButtonToggleGroup是一个Material Design风格的单选按钮组,可方便地在应用中展示选项列表。如果在某些情况下需要取消选中已选中的单选按钮,可以使用双击事件实现。

实现原理

MaterialButtonToggleGroup的选项是由MaterialButton组成的。当点击某个MaterialButton时,会将其设置为选中状态。而当再次点击已选中的MaterialButton时,不会取消其选中状态。但是,可以通过为MaterialButton设置一个双击事件来实现双击取消选中的效果。

实现步骤
  1. 在xml文件中,定义MaterialButtonToggleGroup和多个MaterialButton。
<com.google.android.material.button.MaterialButtonToggleGroup
    android:id="@+id/toggle_group"
    ...
    >

    <com.google.android.material.button.MaterialButton
        android:id="@+id/button1"
        ...
        />

    <com.google.android.material.button.MaterialButton
        android:id="@+id/button2"
        ...
        />

    ...

</com.google.android.material.button.MaterialButtonToggleGroup>
  1. 在Activity或Fragment中,为每一个MaterialButton设置双击事件。
MaterialButton button1 = findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
    private long lastClickTime = 0;

    @Override
    public void onClick(View view) {
        long clickTime = System.currentTimeMillis();
        if (clickTime - lastClickTime < 500) {
            // 双击事件
            materialButtonToggleGroup.clearChecked();
        }
        lastClickTime = clickTime;
    }
});

MaterialButton button2 = findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
    private long lastClickTime = 0;

    @Override
    public void onClick(View view) {
        long clickTime = System.currentTimeMillis();
        if (clickTime - lastClickTime < 500) {
            // 双击事件
            materialButtonToggleGroup.clearChecked();
        }
        lastClickTime = clickTime;
    }
});

...
  1. 在点击MaterialButton后,记录当前时间戳,如果在500ms内再次点击了该MaterialButton,则执行双击事件,取消已选中的按钮。
总结

MaterialButtonToggleGroup是一个非常方便的单选按钮组,可以用来展示多个选项。而双击取消选中的功能是一种比较实用的操作,可以方便地让用户在已选中的按钮之间进行切换。本文介绍了如何使用MaterialButtonToggleGroup实现双击取消选中的效果,希望对大家有所帮助。