34

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

4

4 に答える 4

83

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

そう:

ProgressDialog dialog = ProgressDialog.show(AContext, "Test", "On the bottom");
                dialog.getWindow().setGravity(Gravity.BOTTOM);
于 2010-08-03T00:48:40.863 に答える
18

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

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 を使用すると、指定されたエッジからのオフセットが提供されます。

于 2012-12-24T08:01:17.043 に答える
3

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

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

于 2015-11-30T09:04:04.363 に答える
1

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

于 2010-08-02T23:15:48.317 に答える