2016-12-01 74 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"); 

這對我有效。