1. ホーム
  2. android

[解決済み] スナックバーのアクションボタンを使ってスナックバーを解除するには?

2022-11-21 23:50:33

質問

Android デザインサポートライブラリに Snackbar のサポートが追加されました。

以下のコードで作成してみました。

Snackbar.make(findViewById(R.id.root_layout), result, Snackbar.LENGTH_LONG)
        .setAction("Dismiss", new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        }).show();

スナックバーはスワイプで解除することができます。しかし、独自のAction Button(setAction関数で作成)を使用しても解除したいです。

しかし、それを行うことができる関数はないようです。

どのように解決するのですか?

Java の場合。

.make メソッドは Snackbar オブジェクトを返します。そのオブジェクトのインスタンスを保存するには、そのオブジェクトを final . そして、そのインスタンスを onClick() を呼び出します。 .dismiss :

final Snackbar snackBar = Snackbar.make(findViewById(android.R.id.content), "Snackbar Message", Snackbar.LENGTH_LONG);

        snackBar.setAction("Action Message", new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Call your action method here
                snackBar.dismiss();
            }
        });
        snackBar.show();

Kotlinの場合。

        Snackbar.make(
            findViewById(android.R.id.content),
            "Snackbar Message",
            Snackbar.LENGTH_INDEFINITE
        ).setAction("Action Message") {
            // Call action functions here
        }.show()