刚刚写了一个kotlin的Dialog,把之前的style拿过来用,发现doalog的遮照背景一直在,在style中设置透明也不起作用。
<style name="loading_style" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowIsFloating">true</item>
<!-- 如果想设置后背景的透明度,则在backgroundDimEnabled为true的情况下设置以下属性 -->
<item name="android:backgroundDimAmount">0.6</item> <!-- 后背景的暗淡度 -->
</style>
经过一番搜索发现,还要在dialog中设置遮照的透明度才行。window.setDimAmount(0f)
class UILoadingProgress(context: Context,themeResId: Int) : Dialog(context) {
constructor(context: Context) : this(context,R.style.loading_style)
init {
requestWindowFeature(Window.FEATURE_NO_TITLE)
setCanceledOnTouchOutside(false)
window.setBackgroundDrawableResource(R.color.transparent)
window.setDimAmount(0f)
setContentView(R.layout.widget_loading_progress)
}
fun show(msg: String) {
super.show()
message_tv.text = msg
}
}