本机 Tizen 删除 naviframe 项目
Native Tizen remove naviframe item
我有一个包含 3 个视图的 Tizen wear 应用程序,每个视图都被推送到 naviframe
。
三个视图是:
Genlist_A > Progressbar > Genlist_B
视图的布局如箭头所示。当用户触摸 Genlist_A
中的 genlist 项目时,会显示 Progressbar
直到 Genlist_B
有数据要显示。
此导航效果很好,所有视图都按应有的方式显示。问题出在尝试从 Genlist_B
导航回 Genlist_A
时。当返回 Progressbar
再次显示时,唯一的方法是关闭 progressbar
以查看 Genlist_A
。
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
的指定导航框架,这只是通过在 genlist 中设置 Elm_Object_Item
来简单设置的。
nf_it = elm_naviframe_item_push(nf, NULL, NULL, NULL, genlist, "empty");
这对我有用。
我有一个包含 3 个视图的 Tizen wear 应用程序,每个视图都被推送到 naviframe
。
三个视图是:
Genlist_A > Progressbar > Genlist_B
视图的布局如箭头所示。当用户触摸 Genlist_A
中的 genlist 项目时,会显示 Progressbar
直到 Genlist_B
有数据要显示。
此导航效果很好,所有视图都按应有的方式显示。问题出在尝试从 Genlist_B
导航回 Genlist_A
时。当返回 Progressbar
再次显示时,唯一的方法是关闭 progressbar
以查看 Genlist_A
。
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
的指定导航框架,这只是通过在 genlist 中设置 Elm_Object_Item
来简单设置的。
nf_it = elm_naviframe_item_push(nf, NULL, NULL, NULL, genlist, "empty");
这对我有用。