首先感谢下Stack Overflow的这个问题 以及对我而言有用的回答
首先需要用到的组件是ProgressBar,默认就是loading转圈圈的样式
首先安卓的绝对布局以及@deprecated了,因为不能适配不同尺寸的屏幕
而且在layout文件加上ProgressBar并不能做出禁止用户点击loading动画图层的效果
所以Stack Overflow上的大伙都推荐使用ProgressDialog
!> 注意:ProgressDialog也是被弃用的组件(@deprecated)
ProgressDialog的显示效果类似MIUI的「正在关机」的对话框,左边是loading转圈圈的spinner,右边是「正在关机的文案」
我希望做成像element-ui的loading组件那样,将loading spinner居中显示而且不需要文字
网上有很多自定义ProgressDialog的方法,但我认为样式问题就该交给style.xml去解决
好在有人给出可以overrideandroid:Theme.Material.Dialog
的居中弹框的样式
只需重写windowBackground样式并设为透明,即可实现居中的loading弹窗
<!-- 居中样式的loading spinner(用于ProgressDialog) -->
<!-- TODO 该loading样式在小米机型上很丑,带箭头而且不会转动 -->
<style name="loading_dialog_center" parent="android:Theme.Material.Dialog">
<!-- loading spinner的颜色设置为bootstrap btn-primary的蓝色 -->
<item name="android:colorAccent">@color/colorPrimary</item>
<item name="android:windowBackground">@color/transparent</item>
</style>
ProgressDialog loading = new ProgressDialog(this, R.style.loading_dialog_center);
loading.setCancelable(false);
loading.show();
// do something ...
loading.dismiss();
loading = null;
我提了一个suggest edit 去改善loading动画的回答
不过被android分区给拒绝了(2票拒绝,1票同意,review没通过),🤕review没通过