微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Tizen:设置EDC文件中组中零件的文本

如何解决Tizen:设置EDC文件中组中零件的文本

我正在尝试为 Tizen 平台编写一个小部件。小部件的布局在 EDC 文件中描述。我需要一个包含一些文本和图像部分的块,用不同的文本标签重复三遍。所以我决定我需要创建一个包含所需部分的 group 并将其用作 item 部分中的 Box

group {
    name: "list_item";

    parts {
        part {
            name: "label1";
            type: "TEXT";

            description { ...  }
        }

        part {
            name: "label2";
            type: "TEXT";

            description { ... }
        }
    }
}

group {
    name: "content";

    parts {
        part {
            name: "list";
            type: "Box";

            Box {
                items {
                    item {
                        type: "GROUP";
                        name: "item1";
                        source: "list_item";
                    }

                    item {
                        type: "GROUP";
                        name: "item2";
                        source: "list_item";
                    }

                    item {
                        type: "GROUP";
                        name: "item3";
                        source: "list_item";
                    }
                }
            }

            description { ... }
        }
    }
}

对于放置在主布局组content中的静态文本部分,我使用elm_object_part_text_set(wid->content,part_name,text)(语言是C,顺便说一句),但不知道如何设置{{ label1 的每个实例的 1}} 部分。

解决方法

用swallow代替group怎么样?

在使用 EDC 创建复杂布局时,可以使用燕子轻松实现。

在c代码中,可以设置elm_label来吞掉内容。

并且你也可以在盒子里添加2个elm_labels后设置内容吞下盒子

或者您可以创建一个更复杂的布局并将布局设置为swallow 中的内容。 (例如您的群组“list_item”)。

在 EDC 中:

   group { "list";
      parts {
         swallow { "item1";
            desc { "default";
                ...
            }
         }
         swallow { "item2";
            desc { "default";
                ...
            }
         }
         swallow { "item3";
            desc { "default";
                ...
            }
         }
      }
   }

在 C 代码中:

/* ex 1 */
elm_object_part_content_set(layout,"item1",label1);
elm_object_part_content_set(layout,"item2",label2);
elm_object_part_content_set(layout,label3);

/* ex */
elm_box_pack_end(box,label1);
elm_box_pack_end(box,box);

/* ex 3 */
elm_object_part_text_set(list_item,"label1","Text 1 ...");
elm_object_part_text_set(list_item,"label2","Text 2 ...");
elm_object_part_content_set(layout,list_item);
,

我找到了解决方案。我不确定它是否正确,但它确实有效。

// widget_instance_data_s *widget_instance
// Get part by name as object
Evas_Object *evas_list = (Evas_Object*) edje_object_part_object_get(elm_layout_edje_get(widget_instance->content),"list");
// Get items of box
Eina_List *items = evas_object_box_children_get(evas_list);
int items_count = eina_list_count(items);

for (i = 0; i < items_count; i++) {
    list_item = (Evas_Object *) eina_list_nth(items,i);
    // item1,item2,...
    item_name = evas_object_name_get(list_item);
    ...
    edje_object_part_text_set(list_item,str);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?