web-dev-qa-db-ja.com

進捗ダイアログの位置を変更するには?

Android=アプリを開発していて、進行状況ダイアログの位置を変更する方法を知る必要があります。画面の中央ではなく、下部に配置する必要があります。デフォルトでは。

33
oliverwhite

ProgressDialog#getWindow#setGravity(...)を呼び出して、重力を変更できます。

そう:

ProgressDialog dialog = ProgressDialog.show(AContext, "Test", "On the bottom");
                dialog.getWindow().setGravity(Gravity.BOTTOM);
79
Rich Schuler

他の回答に加えて、LayoutParams.xまたはLayoutParams.yを使用して、特定のEdgeからのオフセットを提供できます。例えば:

progressDialog = ProgressDialog.show(this, "Title","Text");

progressDialog.getWindow().setGravity(Gravity.TOP);
LayoutParams params = progressDialog.getWindow().getAttributes();
params.y = 100;
progressDialog.getWindow().setAttributes(params);

また、LayoutParams.yについて知っておくと便利です。

このウィンドウのY位置。デフォルトの重力では無視されます。 TOPまたはBOTTOMを使用すると、指定されたエッジからのオフセットが提供されます。

とLayoutParams.xについて:

このウィンドウのX位置。デフォルトの重力では無視されます。 LEFTまたはSTARTまたはRIGHTまたはENDを使用する場合、指定されたエッジからのオフセットを提供します。

16
Bobs

ProgressDialogのカスタムテーマを使用している場合は、カスタムテーマのstyle.xmlファイルのスタイルに以下のxmlタグを追加できます。

<item name="Android:layout_gravity">bottom</item>

3
Samuel Robert

Android:gravity = "bottom"をレイアウトの最も外側のXML要素に追加すると、そうなる場合があります。これがダイアログまたはその内容を移動するかどうかは不明です。

1
matto1990