ヌガーのマルチウィンドウモードでトーストを配置するにはどうすればよいですか?

突風が青くなる

Nougatの新しいマルチウィンドウモードを使用しているときにToast、自分のアプリがポートレートモードのトップウィンドウにある場合、別のアプリの上にが表示されることに気付きました。

ここに画像の説明を入力してください

これは...全然良くありません。そこで「Androidでトーストの位置を変更するにはどうすればよいですか?」という回答Toast基づい配置してみました

toast.setGravity(Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0);

残念ながら、Gravityは「私の窓の重力」ではなく「画面の重力」として解釈されいるようです。

Toastウィンドウの下部近くに表示され、水平方向の中央に表示されるようにするにはどうすればよいですか?

ここに画像の説明を入力してください

デモンズソウル

これが意図した動作だと思います。マテリアルデザインガイドラインによると、目的を達成するための簡単な方法がないことを超えて、トーストは主にシステムメッセージを伝えるために使用され、画面の下部に表示されます。

私の推測では、システムメッセージはデバイス全体に関係する必要があり、必ずしもアプリケーション固有ではないため、この一貫した動作は理にかなっています。とはいえ、トーストがアプリケーションの1つで画面の実質的に25%を占めるようになるため、この動作が望ましくない理由がわかります...ただし、トーストの位置に関係なく、実際にその画面をゴブリングしますそれがあなたのアプリケーションにあるか以下のものであるかにかかわらず、不動産。

本当に回避策を実装したい場合は、トーストを垂直方向にオフセットするための実装を次に示します。わずかなバリエーションでランドスケープモードを実現する必要がありますが、もう少し厄介です。

View root = findViewById(R.id.root_main);

int[] xy = new int[2];
root.getLocationOnScreen(xy);

DisplayMetrics displayMetrics = new DisplayMetrics();
WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(displayMetrics);
int devHeight = displayMetrics.heightPixels;

int viewHeight = root.getHeight();

Toast toast = Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_LONG);
int yOffset = Math.abs(xy[1] - devHeight + viewHeight) + toast.getYOffset();
toast.setGravity(Gravity.BOTTOM, 0, yOffset);
toast.show();

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

EclipseMarsでマルチウィンドウパースペクティブレイアウトを保存するにはどうすればよいですか

分類Dev

Linuxターミナルウィンドウを「スマート」に配置してサイズを変更するにはどうすればよいですか?

分類Dev

Mac OSでモーダルスライドアウトウィンドウを作成するにはどうすればよいですか?

分類Dev

トーストウィンドウのスタイルをカスタマイズするにはどうすればよいですか?

分類Dev

ウィンドウスクロールの特定の高さで、ブートストラップモーダルを1回だけトリガーするにはどうすればよいですか?

分類Dev

Angular JSのモーダルウィンドウにリモートHTMLページを表示するにはどうすればよいですか?

分類Dev

テキストフィールドのレイアウトマージンをSwiftで設定するにはどうすればよいですか?

分類Dev

12.04のCompizで「スケールウィンドウタイトルフィルター」を有効にするにはどうすればよいですか?

分類Dev

12.04のCompizで「スケールウィンドウタイトルフィルター」を有効にするにはどうすればよいですか?

分類Dev

12.04のCompizで「スケールウィンドウタイトルフィルター」を有効にするにはどうすればよいですか?

分類Dev

別のウィンドウからトリガーされたマネージドBeanのメソッドからメインウィンドウを更新(リダイレクト)するにはどうすればよいですか?

分類Dev

postgresでフィールドのカウントを取得するにはどうすればよいですか?

分類Dev

postgresでフィールドのカウントを取得するにはどうすればよいですか?

分類Dev

最新の素晴らしいウィンドウマネージャーをインストールするにはどうすればいいですか?

分類Dev

最新の素晴らしいウィンドウマネージャーをインストールするにはどうすればいいですか?

分類Dev

「ファンシーウィンドウスイッチ」のショートカットを復元するにはどうすればよいですか?

分類Dev

nautilusウィンドウが開かないようにするには、コマンドラインからリモートホストをnautilusでマウントするにはどうすればよいですか?

分類Dev

Electronアプリのウィンドウタイトルバーをカスタマイズするにはどうすればよいですか?

分類Dev

react-modalでモーダルウィンドウの外側に閉じるボタンを配置するにはどうすればよいですか?

分類Dev

ロード時に最初の情報ウィンドウをトリガーするにはどうすればよいですか?

分類Dev

マルチアカウントシステムを作成するにはどうすればよいですか?(ユーザー名、パスワードなど)

分類Dev

Fedora 21でデフォルトのウィンドウマネージャーを設定するにはどうすればよいですか?

分類Dev

Python Tkinterルートウィンドウを削除するにはどうすればよいですか?

分類Dev

xmonadで、スタック内の次のウィンドウをマスターウィンドウにプロモートするにはどうすればよいですか?

分類Dev

pyqtでモーダルウィンドウを作成するにはどうすればよいですか?

分類Dev

マーカー情報ウィンドウに 2 色のテキストを 1 行に表示するにはどうすればよいですか?

分類Dev

Tkinter、Windows:タイトルバーのないWindowsタスクバーでウィンドウを表示するにはどうすればよいですか?

分類Dev

compizの「ウィンドウルール」をインストールするにはどうすればよいですか?

分類Dev

ウィンドウのサイズを変更するときに関数をトリガーするにはどうすればよいですか?

Related 関連記事

  1. 1

    EclipseMarsでマルチウィンドウパースペクティブレイアウトを保存するにはどうすればよいですか

  2. 2

    Linuxターミナルウィンドウを「スマート」に配置してサイズを変更するにはどうすればよいですか?

  3. 3

    Mac OSでモーダルスライドアウトウィンドウを作成するにはどうすればよいですか?

  4. 4

    トーストウィンドウのスタイルをカスタマイズするにはどうすればよいですか?

  5. 5

    ウィンドウスクロールの特定の高さで、ブートストラップモーダルを1回だけトリガーするにはどうすればよいですか?

  6. 6

    Angular JSのモーダルウィンドウにリモートHTMLページを表示するにはどうすればよいですか?

  7. 7

    テキストフィールドのレイアウトマージンをSwiftで設定するにはどうすればよいですか?

  8. 8

    12.04のCompizで「スケールウィンドウタイトルフィルター」を有効にするにはどうすればよいですか?

  9. 9

    12.04のCompizで「スケールウィンドウタイトルフィルター」を有効にするにはどうすればよいですか?

  10. 10

    12.04のCompizで「スケールウィンドウタイトルフィルター」を有効にするにはどうすればよいですか?

  11. 11

    別のウィンドウからトリガーされたマネージドBeanのメソッドからメインウィンドウを更新(リダイレクト)するにはどうすればよいですか?

  12. 12

    postgresでフィールドのカウントを取得するにはどうすればよいですか?

  13. 13

    postgresでフィールドのカウントを取得するにはどうすればよいですか?

  14. 14

    最新の素晴らしいウィンドウマネージャーをインストールするにはどうすればいいですか?

  15. 15

    最新の素晴らしいウィンドウマネージャーをインストールするにはどうすればいいですか?

  16. 16

    「ファンシーウィンドウスイッチ」のショートカットを復元するにはどうすればよいですか?

  17. 17

    nautilusウィンドウが開かないようにするには、コマンドラインからリモートホストをnautilusでマウントするにはどうすればよいですか?

  18. 18

    Electronアプリのウィンドウタイトルバーをカスタマイズするにはどうすればよいですか?

  19. 19

    react-modalでモーダルウィンドウの外側に閉じるボタンを配置するにはどうすればよいですか?

  20. 20

    ロード時に最初の情報ウィンドウをトリガーするにはどうすればよいですか?

  21. 21

    マルチアカウントシステムを作成するにはどうすればよいですか?(ユーザー名、パスワードなど)

  22. 22

    Fedora 21でデフォルトのウィンドウマネージャーを設定するにはどうすればよいですか?

  23. 23

    Python Tkinterルートウィンドウを削除するにはどうすればよいですか?

  24. 24

    xmonadで、スタック内の次のウィンドウをマスターウィンドウにプロモートするにはどうすればよいですか?

  25. 25

    pyqtでモーダルウィンドウを作成するにはどうすればよいですか?

  26. 26

    マーカー情報ウィンドウに 2 色のテキストを 1 行に表示するにはどうすればよいですか?

  27. 27

    Tkinter、Windows:タイトルバーのないWindowsタスクバーでウィンドウを表示するにはどうすればよいですか?

  28. 28

    compizの「ウィンドウルール」をインストールするにはどうすればよいですか?

  29. 29

    ウィンドウのサイズを変更するときに関数をトリガーするにはどうすればよいですか?

ホットタグ

アーカイブ