如何改变进度对话框的位置?

我正在开发一个android应用程序,并需要知道如何更改进度对话框的位置。 我需要它被定位在屏幕的底部,而不是在默认情况下。

  • 为什么当使用改进从服务器同步到本地数据库的一堆数据时,Android Circle进度对话框冻结
  • 使用AsynTask进行Squre Image旋转的自定义进度对话框
  • AsyncTask.get()调用时不显示ProgressDialog
  • Android:如何摆脱进度对话框的怪异边框
  • 如何将主题设置为ProgressDialog?
  • 如何在Android中进行后台工作时使用AsyncTask显示ProgressDialog?
  • 在Android中禁用ProgressDialog / AlertDialog上的背景昏暗
  • ProgressDialog在执行任务时不显示
  • 你可以调用ProgressDialog#getWindow#setGravity(...)来改变重力。

    所以:

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

    除了其他答案之外,您可以使用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时,它会提供给定边的偏移量。

    如果您为ProgressDialog使用任何自定义主题,那么您可以将下面的xml标记添加到自定义主题的style.xml文件中的样式

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

    将android:gravity =“bottom”添加到布局中最外面的XML元素可能会做到这一点。 不知道这是否移动对话框或它的内容。