Tizen 4: Почему бокс-контейнер не может содержать другой макет?

Я создаю коробку-контейнер на 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) ?? Особенно после прочтения их документации:

Вы можете добавить в ящик любой объект Evas.

Насколько мне известно, любое означает любое: поэтому Layout также является частью группы с именем any.


person Daniel    schedule 10.12.2020    source источник


Ответы (1)


На самом деле поле может содержать только то, что вам нужно установить выравнивание и вес макета, независимо от того, что содержится в определении макета.

Отличная помощь отсюда: Как добавить текст редактирования в собственное приложение Tizen ?, спасибо @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);

И теперь это работает.

person Daniel    schedule 10.12.2020