【问题标题】:Tizen 4: Why is a box container not able to hold another layout?Tizen 4:为什么一个盒子容器不能容纳另一个布局?
【发布时间】:2020-12-10 13:50:17
【问题描述】:

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

但布局没有显示在模拟器上。

但是,如果我只是将布局添加到导航框架(而不是框),它会显示

//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”之后:

您可以将任何 Evas 对象添加到盒子中。

据我所知,“any”表示任何:所以 Layout 也是名为“any”的组的一部分。

【问题讨论】:

    标签: tizen tizen-native-app


    【解决方案1】:

    实际上框可以包含你必须设置布局的对齐和权重,无论布局定义包含什么。

    来自这里的巨大帮助:How to add edit text in native Tizen app?,感谢@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);
    

    现在它可以工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-19
      • 1970-01-01
      • 2019-12-30
      • 2023-02-15
      相关资源
      最近更新 更多