首页 > 解决方案 > 进度条在真实设备上没有动画

问题描述

我使用原生 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 
}

标签: tizentizen-native-app

解决方案


您的代码似乎没有问题。

但是进度不起作用(第二张图片)是一般状态

elm_progressbar_pulse(obj, EINA_FALSE);

再次检查这一点。

而且我不确定您在事件处理程序部分的意图。

您是否曾经想在单击布局时添加进度和工作?

有的话试试这个

evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_DOWN, show_loader_cb, layout);

我还没有看到你的完整代码,但我猜 show_loader_cb 不是通过回调调用的。


推荐阅读