PopupWindow と Dialog をいつ使用するかは不明です。どんな洞察も大歓迎です。ありがとう。
3 に答える
どちらも、さまざまな windowManager メソッドとともに addView() メソッドを使用します。その点では両者は似ている。
ダイアログには、基本クラスに既に含まれているハンドラーやボタンなど、対話用の組み込み機能が追加されているようですが、PopupWindows には画面上に配置するための組み込みメソッドが追加されています。
それぞれが他とまったく同じことを行うことができると思いますが、オブジェクトをどのように使用したいかに関して、プログラマーにとって 2 つのどちらかを選択するのは便宜上の問題になります。私はコンピュータ サイエンスの博士号ではありませんが、それぞれのクラス定義で見たものに基づいて、2 つの処理時間に大きな違いがあるとは思いません。
私のアドバイス: View がディスプレイに表示される場所をより詳細に制御したい場合は、PopupWindow を使用してください。ビュー間にさらに制御とフィードバックを追加する場合は、ダイアログを使用します。私のように、すべてをマスター コントロールしたい場合は、PopupWindow をお勧めします。これは、ユーザーが明示的にオーバーライドする既定のメソッドが少ないためです。
単純なユーザー操作 (はい、いいえ) にはダイアログを使用する必要があると思います。私は通常、単純なユーザー操作には Dialog を使用し、もう少し複雑なビューには WindowPopup を使用します。WindowPopup の一例はAutoCompleteTextViewです。
それが役に立てば幸い。
Dialog は、次に進む前にアクションを実行する必要がある場合に使用する必要があると思います。画面を覆うことはなく、常にモーダル イベントとして中央揃えに調整されます。一方、PopupWindow には、設定された位置に応じて、固定フッター、固定ヘッダー、左、右、中央などのように、画面のどこでも情報を柔軟に調整できます。情報を表示するには、アニメーション化する機能もあるため、良いオプションです。つまり、最小限のアクションで情報を表示するには PopupWindow を使用し、制御されたアクションを次に進めるには Dialog を使用します。