tizen - 如何向自定义主题发送信号?
问题描述
在 Tizen 中,通过elm_layout_signal_emit
.
我有一个名为 的 genlist myList
,我为它创建了一个自定义主题(使用 EDC):
group { "elm/genlist/base/mystyle";
parts { ... }
programs {
program { "myprogram";
source: "app";
signal: "mysignal";
...
}
}
}
我将此主题应用于myList
:elm_object_style_set(myList, "mystyle")
。
myprogram
用这个 genlist运行程序的方法是什么?
我试过了
elm_layout_signal_emit
: 没用,但 genlist 可能不是布局,我并不感到惊讶。elm_object_signal_emit
: 没用,不知道为什么edje_object_signal_emit
: 没用,也不知道为什么
解决方案
elm_object_signal_emit 应该可以工作。但我怀疑这些主题是否正确应用。如果要将自定义样式设置为对象,则必须先更改主题。您可以通过调用 elm_theme_extension_add(NULL, your_edc_path); 来扩展您的自定义主题。//NULL 表示默认主题。在https://docs.tizen.org/application/native/guides/ui/efl/component-custom/上查看更多详细信息
我想知道......你真的想改变 genlist 而不是 genlist_item。如果要更改很少更改的 genlist 小部件主题,则需要复制滚动条主题或默认 genlist 主题,因为 genlist 是特殊类型的滚动条。genlist 样式位于https://review.tizen.org/gerrit/#/admin/projects/profile/wearable/platform/core/uifw/efl-theme-tizen-wearable中的 widgets/scroller.edc
为了确保,我测试了 scroller.edc(genlist/default) 中的简单信号变化
part { name: "myrect"; type: RECT;
description { state: "default" 0.0;
visible: 0;
}
description { state: "show" 0.0;
inherit: "default" 0.0;
visible: 1;
color: 255 0 0 255;
}
}
program { name: "myprogram";
signal: "mysignal";
source: "app";
action: STATE_SET "show" 0.0;
target: "myrect";
}
并发送一个信号,elm_object_signal_emit(myList, "mysignal", "app");
将背景颜色正确更改为红色。