如何解决进度条在真实设备上没有动画
我使用原生 C 语言为 Tizen 4.0 创建了一个不确定进度条:
Evas_Object* progressbar = elm_progressbar_add(parent);
evas_object_size_hint_align_set(progressbar,EVAS_HINT_FILL,EVAS_HINT_FILL);
evas_object_size_hint_weight_set(progressbar,EVAS_HINT_EXPAND,EVAS_HINT_EXPAND);
elm_object_style_set(progressbar,"process/small");
elm_progressbar_pulse_set(progressbar,EINA_TRUE);
elm_progressbar_pulse(progressbar,EINA_TRUE);
elm_object_part_content_set(parent,"elm.progress",progressbar);
evas_object_show(progressbar);
这是“the”官方文档:https://docs.tizen.org/application/native/guides/ui/efl/wearable/component-progressbar。
如果我在我的模拟器(x86、Tizen 4.0)上运行上面的代码,我会得到预期的结果:
但是在手表上运行时,它根本无法启动:
上面的代码有什么问题?估计没什么但是他们的文档一次又一次地缺乏信息。
更新
只有当您想从事件处理程序中执行此操作时,问题才会存在:
elm_layout_signal_callback_add(layout,"mouse,clicked,1","elm.*",show_loader_cb,layout);
static void show_loader_cb(void* data,Evas_Object* object,const char* emission,const char* source) {
Evas_Object* parent = reinterpret_cast<Evas_Object*>(data);
//PUT HERE THE CODE ABOVE
}
解决方法
您的代码似乎没有问题。
但进度不起作用(第二张图片)是一般状态
elm_progressbar_pulse(obj,EINA_FALSE);
再次检查这一点。
而且我不太确定您在事件处理程序部分的意图。
您是否想在单击布局时添加进度和工作?
如果是这样,试试这个,
evas_object_event_callback_add(layout,EVAS_CALLBACK_MOUSE_DOWN,show_loader_cb,layout);
我还没有看到你的完整代码,但我猜 show_loader_cb 不是通过回调调用的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。