进度条在真实设备上没有动画

问题描述

我使用原生 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)上运行上面的代码,我会得到预期的结果:

enter image description here

但是在手表上运行时,它根本无法启动:

enter image description here

上面的代码有什么问题?估计没什么但是他们的文档一次又一次地缺乏信息

更新

只有当您想从事件处理程序中执行此操作时,问题才会存在:

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 不是通过回调调用的。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...