我需要向ProgressDialog
显示消息,我这样做
pd = ProgressDialog.show(Login.this,
"Connecting...", "Please wait",
true, false
);
我可以设置进度对话框的尺寸(宽度)以及如何设置?它有效但看起来很小而且丑陋。
答案 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);
最终结果如下:(我的模拟器一如既往地慢)