Android-スナックバーとトースト-使い方と違い


103

これまでのアプリケーションではToastのみを使用しており、Support Design Libraryのいくつかの新機能を採用する予定なので、SnackbarとToastの推奨される使用法は何なのかと思います。

私はグーグル素材のスナックバーのドキュメントを読んでいます。

スナックバーは、モバイルの画面の下部とデスクトップの左下にある小さなポップアップで、操作に関する軽量のフィードバックを提供します。それらは、FABを含む画面上のすべての要素の上にあります。

トースト。

Androidは、主にシステムメッセージングに使用されるカプセル型のトーストも提供します。トーストはスナックバーに似ていますが、アクションが含まれておらず、画面からスワイプできません。

私は彼らが何をしているのか理解していますが、何をいつ使うのか少し混乱しています。それはそれを意味しますか:

  • ユーザーの操作を必要としない場合、トーストを使用しますか?
  • 「システムメッセージング」とはどういう意味ですか?これは、アプリとAndroidシステムの間で重要なことが起こったときに情報を表示する場合にも当てはまりますか?
  • 私が好きなのは、画面外にスワイプする機能です-それがトーストをスナックバーに置き換えることを始める理由ですか?(これは少し意見ベースの質問です)

このリンクは機能していません。多分これは使用されるべきですmaterial.io/guidelines/components/snackbars-toasts.html
Vadim Kotov

回答:


109

ユーザーの操作を必要としない場合、トーストを使用しますか?

引き続きSnackbarを使用できます。Snackbarでのアクションは必須ではありません。

「システムメッセージング」とはどういう意味ですか?これは、アプリとAndroidシステムの間で重要なことが起こったときに情報を表示する場合にも当てはまりますか?

これは、システムに関するメッセージがある場合は、トーストを使用する必要があることを意味します。Android全体、または実行しているバックグラウンドサービスのいずれか。例Text-To-Speech is not installed.ORNo Email client found.

私が好きなのは、画面外にスワイプする機能です-それがトーストをSnackbarに置き換えることを始める理由ですか?(これは少し意見ベースの質問です)

それが一つの理由です。しかし、他にもいくつかプラスの点があります。例:アクティビティが終了してもトーストは画面に残ります。スナックバーにはありません。アプリが終了した後も、トーストがポップアップしない場合(または、トーストが連続して複数作成されている場合はポップアップし続ける場合)の混乱は少なくなります。これはSnackbarでは発生しません。

何よりも:考えているのなら、切り替えるべきです。SnackBarsはToastsよりもはるかによく見えます。


18
乾杯、あなたが活動している間だけスナックバーが生きているという点は本当に便利です。
Jakub Holovsky、2015

9
システムメッセージに加えてアプリ全体を参照するメッセージにはトーストが推奨され、現在のアクティビティを参照するメッセージにはスナックバーが推奨されることを付け加えます。たとえば、アプリが起動時に更新をチェックする場合、結果メッセージにはトーストを使用するのが最善です。アプリに削除可能なアイテムがある場合、削除された応答メッセージを元に戻すボタン付きのスナックバーとして表示することをお勧めします。
田代スバル

10
もう1つ注意すべき点は、通知をオフにするとトーストが表示されないことです。
Horatio

また、重要な違いは、トーストとは異なり、常に1つのスナックバーだけが表示されることです。複数のトーストを重ねて表示することができます。これは、特に、スワイプ。
Firzen、

47

トーストとスナックバーの小さな比較を追加したいと思います。私の意見では、ユーザーの操作/確認が必要な警告または情報を表示する場合は、スナックバーを使用する必要があります。それがユーザーの確認を必要としない単なる情報メッセージである場合は、トーストを使用できます。

+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| # |                                Toast                                 |                                 Snackbar                                 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| 1 | Cant be dismissed by swiping                                        | Can dismiss by swiping                                                   |
| 2 | Activity not required (Can show in android home or above other apps) | Can show inside an activity of your app                                  |
| 3 | Cant handle user input                                              | Can handle user input                                                    |
| 4 | Good for showing info messages to user                               | Good for showing warning/info type messages to user that needs attention |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+

26

トースト:

  1. トーストはAPIレベル1で追加されました
  2. 基本的にアクティビティは必要ありません(Androidのホームや他のアプリの上に表示できます)
  3. ユーザー入力に基づくアクションを実行できません
  4. スワイプで閉じることはできません
  5. スワイプ、クリックなどのユーザー入力を処理できません。
  6. ユーザーに情報メッセージを表示するのに適しています

スナックバー:

  1. SnackBarはAPIレベル23で追加されました
  2. アプリケーションのアクティビティ内で表示できます
  3. アクションを実行できます
  4. スワイプすると閉じることができます
  5. ユーザー入力を処理できます
  6. 注意が必要なユーザーに警告/情報タイプのメッセージを表示するのに適しています

SnackBarとToastの使用法:

スナックバー:

SnackBarは、アクションを実行するオプションとともに単純なポップアップメッセージを表示する必要がある領域で使用できます。例:GMailアプリケーションでメールを削除すると、下部にクイックSnackBarが表示され、メッセージ「1削除済み」とアクションボタン「元に戻す」が表示されます。[元に戻す]アクションボタンを押すと、削除されたメールが復元されます。

トースト:

Toastは、システムメッセージを表示する必要がある領域で使用できます。

例えば:

アプリがリモートサーバーからJSONをダウンロードしようとしたが、サーバータイムアウトまたはリソースが見つからないために失敗した場合は、「エラーが発生しました」というエラーメッセージを表示するだけです。ただし、トーストメッセージはスワイプによって閉じることはできません。アプリでそれを却下する機能が必要な場合は、SnackBarを使用してください。


13

ポップアップメッセージ概要の公式ドキュメントによると:

注: スナックバーのクラスが取って代わるトースト一方でトーストは現在もサポートされている、スナックバーは今表示ブリーフ、ユーザーへの一時的なメッセージに好ましい方法です。

(素材デザイン)Snackbarsのドキュメント:

関連概念: Androidは、システムレベルの通知を表示するために使用できる同様のAPIを備えたToastクラスも提供します。一般に、スナックバーは、アクションが発生したUIのコンテキストで表示できるため、ユーザーにフィードバックメッセージを表示するための推奨メカニズムです。これができない場合のためにトーストを予約してください。


2

Googleのマテリアルデザイン仕様によると、スナックバーは何もしなくても問題ありません。彼らは、スナックバーが単一の文字列しか表示しない場合の外観の例を提供しています。「システムメッセージング」とは、ネットワーク接続が失われるなどのデバイスイベントを意味すると思います。たとえば、メールのアーカイブはGmail固有のアクションです。

一貫性を保つために、トーストまたはスナックバーを選択し、それをアプリ全体に適用することは理にかなっています。



1

簡単に言えば、これらはバックグラウンドで発生することをユーザーに伝える2つの方法であり、そのうちの1つをピークにすることができます。同じものを使用していて、それらを切り替えないでください。

長い答え:

  • いいえ、つまり、何らかのアクションが必要な場合は、Snackbarを使用する必要があります。Snackbarは引き続きメッセージにのみ使用できます(「アップロードが完了しました」など)。
  • 「システム」とは、Androidシステムだけを意味するものではありません。たとえば、サーバーから情報を取得しているときにJSON解析の問題が発生した場合でも、トーストを使用して、サーバーとの通信中に問題が発生したことをユーザーに通知できます。
  • 本当にこれをスワイプする必要がある場合、それがスナックバーを選ぶ理由です。

1

私たちの設計チームは、トーストまたはスナックバーの使用も検討しています。アプリの柔軟性を考えれば、アプリはスナックバーを使用すべきであるという結論に達しました。

トーストはさまざまな画面で意味のある、永続的で短い文字列の情報メッセージが必要な場合にのみ使用してください


1

Androidのトーストとスナックバーの違い

  • トーストメッセージは画面上の任意の場所でカスタマイズおよび印刷できますが、スナックバーは画面の下部にのみ表示できます。
  • Toastメッセージにはアクションボタンはありませんが、Snackbarにはオプションでアクションボタンがある場合があります。
  • トーストメッセージは制限時間が終了するまでオフにできませんが、制限時間の前にスナックバーをスワイプできます。
  • この3つの異なる値を使用して、メッセージが表示される期間を設定できます。
    Snackbar.LENGTH_LONG
    Snackbar.LENGTH_SHORT
    Snackbar.LENGTH_INDEFINITE

使用法

トースト

Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();

スナックバー

Snackbar snackbar = Snackbar.make(view,"This is Simple Snackbar",Snackbar.LENGTH_SHORT);
snackbar.show();

0

Androidは、主にシステムメッセージングに使用されるカプセル型のトーストも提供します。

「システムメッセージング」とは、トーストが特定の時間表示され、ユーザーがアクティビティ間を移動したり、アプリがバックグラウンドに移動したりした場合でも閉じることができないという事実も指すと思います。

その範囲を活動に限定し、それを却下できることは、スナックバーの利点であると私は考えています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.