如何更改进度对话框的位置?
Posted
技术标签:
【中文标题】如何更改进度对话框的位置?【英文标题】:How to change the position of a progress dialog? 【发布时间】:2011-03-24 11:08:33 【问题描述】:我正在开发一个 android 应用,需要知道如何更改进度对话框的位置。我需要将它定位在屏幕底部,而不是像默认那样位于中心。
【问题讨论】:
【参考方案1】:您可以拨打ProgressDialog#getWindow#setGravity(...)
更改重力。
所以:
ProgressDialog dialog = ProgressDialog.show(AContext, "Test", "On the bottom");
dialog.getWindow().setGravity(Gravity.BOTTOM);
【讨论】:
【参考方案2】:除了其他答案之外,您还可以使用 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 时,它提供从 给定的边。
【讨论】:
感谢您提供更多信息。我今天不需要它,但我将来会。【参考方案3】:如果您为 ProgressDialog 使用任何自定义主题,那么您可以将以下 xml 标签添加到自定义主题的 style.xml 文件中的样式
<item name="android:layout_gravity">bottom</item>
【讨论】:
【参考方案4】:将 android:gravity="bottom" 添加到布局中最外层的 XML 元素可能会做到这一点。不确定这是否会移动对话框或其内容。
【讨论】:
这不会将对话框带到屏幕底部。它可以将内容移动到父视图的底部。以上是关于如何更改进度对话框的位置?的主要内容,如果未能解决你的问题,请参考以下文章