Tizen 4:为什么一个盒子容器不能容纳另一个布局?
Tizen 4: Why is a box container not able to hold another layout?
我在 Tizen 4.0 上创建了一个盒子容器:
Evas_Object* box = elm_box_add(naviframe);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(box);
elm_object_content_set(naviframe, box);
然后我想将 edje 的布局添加到框中:
Evas_Object* page = elm_layout_add(box);
elm_layout_file_set(page, "layout.edj", "groupname_in_layout");
evas_object_show(page);
elm_box_pack_end(box, page);
然后我把盒子推到屏幕上:
elm_naviframe_item_push(naviframe, NULL, NULL, NULL, box, "empty");
但是布局在模拟器上没有显示。
但是,如果我只是简单地将布局添加到 naviframe(而不是框),它会显示:
//elm_box_pack_end(box, page);
elm_naviframe_item_push(naviframe, NULL, NULL, NULL, page, "empty");
如果我以编程方式创建标签并将其放入框中,也会显示:
Evas_Object* text = elm_label_add(box);
elm_object_text_set(text, "<align=center>Hello Tizen</align>");
evas_object_show(text);
elm_box_pack_end(box, text);
elm_naviframe_item_push(naviframe, NULL, NULL, NULL, box, "empty");
为什么要拒绝 Box 布局来包含 Tizen 中唯一合理的布局 (Layout)?特别是在阅读了他们的“docs”之后:
You can add any Evas object to the box.
据我所知,“any”表示任何:因此 Layout 也是名为“any”的组的一部分。
实际上框 可以 包含只是你必须设置布局的对齐和重量,无论布局定义包含什么。
来自这里的巨大帮助:,感谢@IsaacCisneros。
所以我只添加了
evas_object_size_hint_align_set(page, EVAS_HINT_FILL, 0.0);
evas_object_size_hint_weight_set(page, EVAS_HINT_EXPAND, 0.0);
现在可以使用了。
我在 Tizen 4.0 上创建了一个盒子容器:
Evas_Object* box = elm_box_add(naviframe);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(box);
elm_object_content_set(naviframe, box);
然后我想将 edje 的布局添加到框中:
Evas_Object* page = elm_layout_add(box);
elm_layout_file_set(page, "layout.edj", "groupname_in_layout");
evas_object_show(page);
elm_box_pack_end(box, page);
然后我把盒子推到屏幕上:
elm_naviframe_item_push(naviframe, NULL, NULL, NULL, box, "empty");
但是布局在模拟器上没有显示。
但是,如果我只是简单地将布局添加到 naviframe(而不是框),它会显示:
//elm_box_pack_end(box, page);
elm_naviframe_item_push(naviframe, NULL, NULL, NULL, page, "empty");
如果我以编程方式创建标签并将其放入框中,也会显示:
Evas_Object* text = elm_label_add(box);
elm_object_text_set(text, "<align=center>Hello Tizen</align>");
evas_object_show(text);
elm_box_pack_end(box, text);
elm_naviframe_item_push(naviframe, NULL, NULL, NULL, box, "empty");
为什么要拒绝 Box 布局来包含 Tizen 中唯一合理的布局 (Layout)?特别是在阅读了他们的“docs”之后:
You can add any Evas object to the box.
据我所知,“any”表示任何:因此 Layout 也是名为“any”的组的一部分。
实际上框 可以 包含只是你必须设置布局的对齐和重量,无论布局定义包含什么。
来自这里的巨大帮助:
所以我只添加了
evas_object_size_hint_align_set(page, EVAS_HINT_FILL, 0.0);
evas_object_size_hint_weight_set(page, EVAS_HINT_EXPAND, 0.0);
现在可以使用了。