awtk-mvvm
awtk-mvvm copied to clipboard
Model-View-ViewModel for AWTK
希望在xml中的控件可以配置多个style,类似css的中的类一样.
如何优雅地使用 edit changing事件的回调,目前只知道有value_changed, 属性跟value_changed_by_ui, 但是没有对changing的属性暴露
您好!! 现在有4个窗口,导航顺序M->A->B->C. 在C界面更改数据,触发事件,A,B窗口都监听该事件,并进行刷新.然后C返回(C close),此时展示B窗口.B返回(B close),展示界面仍是B,B再返回(B close),界面展示为M. 猜测,,在C返回到B时,活跃的窗口为A,后续调的也是A的close,再次返回时,才关闭B窗口,此时栈顶的窗口为M,展示为M
如 全国 广东 粤 广州 A 深圳 B 如 两层循环,下层要显示 广州 粤A
MVVM中介绍说 “可移植到其它GUI。AWTK-MVVM是为AWTK设计的,但是我们隔离了与AWTK相关的代码,让它可以移植到其它GUI。AWTK相关的代码仅仅700来行,可见移植到新的GUI是非常容易的事情。当然,AWTK可以满足常见的需要,这样做只是给开发者提供更多选择。” 但是在awtk-mvvm代码中却存在不少的耦合,比如view_model_factory_register却直接调用了awtk的函数object_set_prop_pointer ret_t view_model_factory_register(const char* type, view_model_create_t create) { return_value_if_fail(s_model_factory != NULL && type != NULL && create != NULL, RET_BAD_PARAMS); return object_set_prop_pointer(s_model_factory->creators, type, create); } ,跟介绍所说的隔离了AWTK相关的代码不符。 请问 如果想将awtk-mvvm移植到其他的gui,有什么好的办法吗?
[issues.zip](https://github.com/zlgopen/awtk-mvvm/files/9838394/issues.zip) 做了个测试程序见附件,问题描述如下: 第一个分组【ABCDEFG】共6个选择项,第二个分组【HIJKLM】共12个选择项,第三个分组【NOPQRST】共18个选择项,第四个分组【UVWXYZ】共6个选择项 启动程序首先进入第一个分组能正常显示6个选择的名称,再点击第二个分组、第三个分组,再点击第四个发现第四个分组的6个选项显示的名称全部是默认的名称,再点击回到第一个分组,发现第一个分组的6个选项显示的名称也全部是默认的名称。 怀疑渲染的控件数量刚刚是一页时存在问题。
edit控件绑定模型的float变量,然后模型里面有个定时器会定时刷新界面,点击编辑框输入数据,然后点击确认输入之后,edit数值变回之前的数值。测试相关文件见附件! [edit_test.zip](https://github.com/zlgopen/awtk-mvvm/files/9613428/edit_test.zip)
用awtk-mvvm框架做了一个项目,用C语言做下来感觉很烦琐:头文件要加特定格式的注释、有时要手写view_mode更麻烦。 现在很多声明式UI框架都是用支持反射的语言来实现,这样model实现起来就很简洁,awtk-mvvm也应该如此。 最近研究了下zig的反射,发现很有意思。如下例子: - 一个内置函数`@field(v, field.name)`就搞定了tkc `object`的`get_prop`和`set_prop` - 这个反射是在编译时进行的,如果`field.name`不存在会通不过编译 - 由于不需要在运行时进行字符串查找判断从而性能也很不错 ```zig const std = @import("std"); const Header = struct { magic: u32, title: []const u8, }; const View =...
发现如果一个UI界面使用图片作为背景图、或者使用的控件相对比较多,使用图片资源也比较多,会导致程序开机后首次进入这一界面有迟缓现象(迟缓0.7、0.8s左右才进入),二次进入也有迟缓现象,只不过比首次进入界面的速度要快些。请问可有方法解决这个问题?