UserDialogs MVVMCross中的自定义UI
本文关键字:自定义 UI MVVMCross UserDialogs | 更新日期: 2023-09-27 17:53:27
我在MVVMCross
项目中使用UserDialogs库。下面的代码已经过测试,运行得非常好,我可以看到Loading Dialog。我的问题是,我如何才能改变循环加载进度的颜色,以与我的主题相匹配?
private async Testing ()
{
using (Mvx.Resolve<IUserDialogs>().Loading("Loading..."))
{
await PutTaskDelay();
}
}
async Task PutTaskDelay()
{
await Task.Delay(2000);
}
在您的本地代码(iOS/Android(中,您必须使用
- 从
ProgressDialog
继承MyProgressDialog
(请参阅https://github.com/aritchie/userdialogs/blob/master/src/Acr.UserDialogs/Platforms/ios/ProgressDialog.cs) - 重写
Refresh
方法,并根据需要自定义创建的对话框 - 从
UserDialogsImpl
继承MyUserDialogs
- 重写
CreateDialogInstance
并使其返回new MyProgressDialog()
而不是new ProgressDialog()
- 寄存器
MyUserDialogs
用于IUserDialogs
(Mvx.Register...
(
您可以使用styles.xml:提供AppCompat对话框主题
<style name="Base.Theme.App" parent="Theme.AppCompat.DayNight.NoActionBar">
...
<item name="dialogTheme">@style/Base.Theme.Dialog.App</item>
<item name="alertDialogTheme">@style/Base.Theme.AlertDialog.App</item>
</style>
<style name="Base.Theme.Dialog.App" parent="Theme.AppCompat.DayNight.Dialog">
<item name="colorAccent">@color/accent</item>
</style>
<style name="Base.Theme.AlertDialog.App" parent="Theme.AppCompat.DayNight.Dialog.Alert">
<item name="colorAccent">@color/accent</item>
</style>
这将更改ACR.UserDialogs库中进度小部件的颜色,以及负/正/中性操作按钮。请参阅此处的更多信息:如何使用和样式来自appCompat 22.1及以上的新AlertDialog