首页 > 解决方案 > 如何向自定义主题发送信号?

问题描述

在 Tizen 中,通过elm_layout_signal_emit.

我有一个名为 的 genlist myList,我为它创建了一个自定义主题(使用 EDC):

group { "elm/genlist/base/mystyle";
   parts { ... }

   programs {
      program { "myprogram";
         source: "app";
         signal: "mysignal";
         ...
      }
   }
}

我将此主题应用于myListelm_object_style_set(myList, "mystyle")

myprogram用这个 genlist运行程序的方法是什么?

我试过了

标签: tizentizen-native-app

解决方案


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");

将背景颜色正确更改为红色。


推荐阅读