1. ホーム
  2. android

[解決済み] Androidマルチラインスナックバー

2023-01-09 12:45:25

質問

新しい Snackbar を利用して、次のように複数行のスナックバーを表示しようとしています。 http://www.google.com/design/spec/components/snackbars-toasts.html#snackbars-toasts-specs :

import android.support.design.widget.Snackbar;

final String snack = "First line\nSecond line\nThird line";
Snackbar.make(mView, snack, Snackbar.LENGTH_LONG).show();

のみを表示します。 First line... としか表示されません。どうすれば全ての行を表示させることができますか?

追記:試しに Toast を試したところ、すべての行が表示されました。

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

単に maxLines 属性を設定するだけです。

View snackbarView = snackbar.getView();
TextView textView = (TextView) snackbarView.findViewById(android.support.design.R.id.snackbar_text);
textView.setMaxLines(5);  // show multiple line

もし、より新しい "com.google.android.material:material:1.0.0" 依存を使用しているのであれば、これを使用することになります。 com.google.android.material.R.id.snackbar_text を使用してSnackbarのTextViewにアクセスします。

を使用することもできます。 R.id.snackbar_text も使えます。