本机Tizen删除Naviframe项目



我有一个由3个视图组成的Tizen Wear应用程序,并且每个视图都将其推向naviframe。这三个视图是:

genlist_a> progressbar> genlist_b

视图的布局由箭头显示。当用户触摸Genlist_A中的GenList项目时,请显示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拉出数据时,我该如何弹出进度栏?

更新我找到了解决问题的方法。我在正确的轨道上使用

将项目弹出。
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_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设置为GenList内部的方法。

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

这对我有用。

相关内容

  • 没有找到相关文章

最新更新