在 Android 对话框中添加自定义样式
Add custom style in Android Dialog
我在 kotlin 中创建了自定义对话框 class。一切都很完美,但现在,我尝试添加我的自定义样式。这是我的风格代码
<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:windowBackground">@color/transparent_15</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="colorPrimary">@color/black</item>
<item name="colorPrimaryDark">@color/black</item>
<item name="colorAccent">@color/light_blue</item>
</style>
这是我的科特林代码
class LoadingProgress(context: Context) : Dialog(context) {
private var imageView: ImageView? = null
private var message: TextView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setCancelable(false)
setCanceledOnTouchOutside(false)
setContentView(R.layout.sp_loading_dialog)
imageView = findViewById<View>(R.id.loading_image_view) as ImageView?
message = findViewById<View>(R.id.loading_message) as TextView?
}
override fun show() {
super.show()
(imageView!!.background as AnimationDrawable).start()
}
}
在java中,我知道如何添加自定义样式,但我无法在kotlin中重写java代码。
这是我的 java 代码片段:
public LoadingProgress(@NonNull Context context) {
super(context, R.style.DialogTheme);
}
我该如何解决这个问题?谢谢
尝试更改 Dialog
的调用构造函数:
class LoadingProgress(context: Context) : Dialog(context, R.style.DialogTheme) { ... }
我在 kotlin 中创建了自定义对话框 class。一切都很完美,但现在,我尝试添加我的自定义样式。这是我的风格代码
<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:windowBackground">@color/transparent_15</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="colorPrimary">@color/black</item>
<item name="colorPrimaryDark">@color/black</item>
<item name="colorAccent">@color/light_blue</item>
</style>
这是我的科特林代码
class LoadingProgress(context: Context) : Dialog(context) {
private var imageView: ImageView? = null
private var message: TextView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setCancelable(false)
setCanceledOnTouchOutside(false)
setContentView(R.layout.sp_loading_dialog)
imageView = findViewById<View>(R.id.loading_image_view) as ImageView?
message = findViewById<View>(R.id.loading_message) as TextView?
}
override fun show() {
super.show()
(imageView!!.background as AnimationDrawable).start()
}
}
在java中,我知道如何添加自定义样式,但我无法在kotlin中重写java代码。
这是我的 java 代码片段:
public LoadingProgress(@NonNull Context context) {
super(context, R.style.DialogTheme);
}
我该如何解决这个问题?谢谢
尝试更改 Dialog
的调用构造函数:
class LoadingProgress(context: Context) : Dialog(context, R.style.DialogTheme) { ... }