web-dev-qa-db-ja.com

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

これまでアプリケーションでToastのみを使用してきましたが、Support Design Libraryの新しい機能を採用する予定であるため、Snackbar対Toastの推奨される使用法は何だろうと思っています。

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

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

とトースト。

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

私は彼らが何をするのか理解していますが、何を使うべきか少し混乱しています。次のことを意味していますか?

  • ユーザーの操作を必要としない場合、トーストを使用しますか?
  • 「システムメッセージング」とはどういう意味ですか?これは、アプリとAndroidシステムの間で重要なことが発生した場合の情報の表示に適用されますか?
  • 私が好きなのは、スワイプオフスクリーン機能です-それがトーストをスナックバーに置き換え始める理由でしょうか? (これは少し意見に基づく質問ですが)
88
Jakub Holovsky

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

スナックバーは引き続き使用できます。スナックバーでのアクションは必須ではありません。

「システムメッセージング」とはどういう意味ですか?これは、アプリとAndroidシステムの間で重要なことが発生した場合の情報の表示に適用されますか?

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

私が好きなのは、スワイプオフスクリーン機能です-それがトーストをスナックバーに置き換え始める理由でしょうか? (これは少し意見に基づく質問ですが)

それが一つの理由です。しかし、他にもいくつかのプラス点があります。例:アクティビティが終了してもトーストは画面に残ります。スナックバーはそうではありませんシーケンス)アプリが終了してからずっと後。これは、スナックバーでは発生しません。

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

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

+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| # |                                Toast                                 |                                 Snackbar                                 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| 1 | Can’t 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 | Can’t 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 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
41
Midhun MP

トースト:

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

スナックバー:

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

スナックバーとトーストの使用法

スナックバー:

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

トースト:

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

例えば:

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

22
Dhaval Jivani

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

注:スナックバー クラスは トースト に取って代わります。 Toast は現在もサポートされていますが、 Snackbar は、一時的なメッセージをユーザーに表示するための推奨される方法です。

および(マテリアルデザイン) スナックバー のドキュメント:

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

9
Nicolau

Googleの Material Design Specification は、アクションなしでSnackbarを使用しても問題ないと述べています。それらは、単一の文字列のみを表示する場合のスナックバーの外観の例を提供しています。 「システムメッセージング」とは、ネットワーク接続が失われるなどのデバイスイベントを意味すると想定します。たとえば、メールのアーカイブはGmail固有のアクションです。

一貫性を保つために、ToastまたはSnackbarを選択し、アプリ全体に適用するのが理にかなっています。

2
fractalwrench

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

長い答え:

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

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

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

1
Vennsoh

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

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

スナックバーの利点は、その範囲をアクティビティに限定し、それを却下できることです。

0
Peter F