我可以设置进度对话框的尺寸(宽度)以及如何设置?

时间:2011-11-14 08:19:15

标签: java android

我需要向ProgressDialog显示消息,我这样做

pd = ProgressDialog.show(Login.this,
  "Connecting...", "Please wait",
  true, false
);

我可以设置进度对话框的尺寸(宽度)以及如何设置?它有效但看起来很小而且丑陋。

1 个答案:

答案 0 :(得分:0)

我想要的是什么:

我想要的是屏幕中央的干净加载指示器,以编程方式禁用用户交互。

问题

问题是默认情况下,对话框设置为fill_parent为width。如果我使用自定义指标视图(在此示例中为AVLoadingIndicatorView),它会保留在左侧并且非常难看。

解决方案

您需要为ProgressDialog添加自定义样式,要求它为宽度包装内容。它默认居中。

<style name="DialogStyle" parent="Theme.AppCompat.Light.Dialog">
    <!--Other custom stuff if needed-->
    <item name="android:layout_width">wrap_content</item>
</style>

然后是使用AVLoadingIndicatorView的示例代码。您可以将其替换为您想要的任何自定义视图。

AVLoadingIndicatorView avLoadingIndicatorView=new AVLoadingIndicatorView(getActivity(), null, 50, 50);
avLoadingIndicatorView.setIndicator("BallPulseSyncIndicator");
avLoadingIndicatorView.setIndicatorColor(R.color.colorPrimary);

final ProgressDialog mDialog = new ProgressDialog(getActivity(), R.style.DialogStyle);
mDialog.setMessage("Loading... Please wait...");
mDialog.setCancelable(false);
mDialog.show();
mDialog.setContentView(avLoadingIndicatorView);

最终结果如下:(我的模拟器一如既往地慢)

enter image description here