2016-12-01 71 views
4

我有一个Tizen磨损应用程序,由3个视图组成,每个视图都被推送到naviframe。 的三个视图是:Native Tizen删除导航栏项目

Genlist_A>进度> Genlist_B

的视图的布局由箭头示出。当用户触摸Genlist_A中的一个种族列表项时,将显示Progressbar,直到Genlist_B有数据要显示。

此导航适用于所有视图,因为它们应该显示。问题是当试图从Genlist_B回到Genlist_A。当导航回Progressbar再次显示并且唯一的出路时Genlist_A发生这种情况是关闭progressbar

void _create_progressbar() 
{ 
    Evas_Object *nf = local_ad->naviframe; 
    Evas_Object *progressbar; 
    Evas_Object *layout; 

    layout = elm_layout_add(nf); 
    elm_layout_file_set(layout, ELM_DEMO_EDJ, "progessbar"); 
    evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); 
    progressbar = elm_progressbar_add(layout); 
    elm_object_style_set(progressbar, "process"); 
    evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL); 
    evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); 
    evas_object_show(progressbar); 
    elm_progressbar_pulse(progressbar, EINA_TRUE); 
    elm_object_part_content_set(layout, "process", progressbar); 
    elm_object_content_set(layout, layout); 
    elm_naviframe_item_push(nf, "ProgressBar", NULL, NULL, layout, "empty"); 
} 

上面的代码显示了进度条视图的创建。我在某些样品中看到使用了elm_naviframe_item_pop_cb_set。我做了同样的事情,当我点击返回时,进度条仍然显示。

nf_it = elm_naviframe_item_push(nf, NULL, NULL, NULL, scroller, "empty"); 
elm_naviframe_item_pop_cb_set(nf_it, _naviframe_pop_cb, ad->win); 

Genlist_B拉取其数据时,如何关闭进度条?

+0

Plz澄清查询。它是否是新的视图(包含进度条)在单击后退按钮后不会弹出? 检查Naviframe导航的链接。 [链接](https://developer.tizen.org/ko/development/guides/native-application/user-interface/efl/ui-containers/creating-naviframe-navigation?langredirect=1)。这里给出了naviframe导航的一个例子,并很好地解释了导航过程。 –

+0

@MehediAlamgir这是一个新的看法。视图的基本布局是Genlist> Progressbar> Genlist,其中genlist是新的genlists。这意味着进度条位于导航栏上,如果我返回,那么它返回的视图就是naviframe,因为这是naviframe中的前一项。 – Jonathan

回答

1

更新 我找到了问题的解决方案。我是在正确的轨道上弹出的项目关闭使用

nf_it = elm_naviframe_item_push(nf, NULL, NULL, NULL, scroller, "empty"); 
elm_naviframe_item_pop_cb_set(nf_it, _naviframe_pop_cb, ad->win); 

,我所做的更改naviframe是_naviframe_pop_cb

static Eina_Bool _naviframe_pop_cb(void *data, Elm_Object_Item *it) 
{ 
    elm_naviframe_item_pop_to(local_ad->startview); 
    return EINA_TRUE; 
} 

内这样做是它跳转到标记为local_ad->startview指定naviframe这只是通过设置排列内的Elm_Object_Item而设置的。

nf_it = elm_naviframe_item_push(nf, NULL, NULL, NULL, genlist, "empty"); 

这对我有效。