语言

Menu
Sites
Language
how do i used elm_naviframe_item_pop()
안녕하세요.. 타이젠 초보 개발자 입니다.
(tizen v.2.3.1 wearable native)
 
naviframe 에 아래 처럼 push 를 하고
void create_main_view()
{
...
Elm_Object_Item *nf_it = NULL;
...
layout = elm_layout_add(ad->nf);
Eina_Bool a = elm_layout_file_set(layout, buf, "main_view");
...
nf_it = elm_naviframe_item_push(ad->nf, "main_view", NULL, NULL, layout, NULL);
...
}
위와 같이 push를 두번을 더 합니다.(two more push)
 
그럼 naviframe에 아래 처럼 stack이 쌓일텐데, 
 
(naviframe stack)
main_view2  ----
main_view1       |  delete (main_view2 & main_view1)
main_view   <---
base
 
화면에는 보이지만 stack 에는 쌓지 않는 방법이나
main_view2에서 취소키로 main_view2를 지우고 main_view1도 지우고 
main_view로 가고 싶으면 어떻하죠?
 
elm_naviframe_item_pop(ad->nf); 을 하니
 
현재 화면은 지워지지만 흰화면만 나오네요..(참고로, RECT bg color 255 255 255 255 edc layout)
void create_main_view2(void *user_data)
{
...
    Elm_Object_Item *top_nf_it = elm_naviframe_top_item_get(ad->nf);
    Evas_Object *obj;
    obj = elm_naviframe_item_pop(ad->nf);  // for main_view1 delete
    //evas_object_del(obj);   // <- 이 함수를 호출해도 동일함
    layout = elm_layout_add(ad->nf);
    sprintf(buf, "%s%s", app_get_resource_path(), "edje/main_view2.edj");
    Eina_Bool a = elm_layout_file_set(layout, buf, "main_view2");

    evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_show(layout);

    nf_it = elm_naviframe_item_push(ad->nf, "main_view2", NULL, NULL, layout, NULL);
    elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);

}

 

 

뭐가 잘못된건지... ㅠㅠ 
 
아시는 분 계시면 답글 부탁드립니다..
 
 
 

响应

1 回复
Jeongsu Kim

elm_naviframe_item_pop_to 함수로 첫번째 view로 이동할 수 있습니다. 함수 인자는 Elm_Object_Item* 입니다.

https://developer.tizen.org/dev-guide/2.3.1/org.tizen.native.mobile.apireference/group__Naviframe.html#ga2967b740a1e1ec32290c1494bd0fe875