2016-12-01 4 views
4

У меня есть приложение для изнашивания Tizen, которое состоит из 3 видов, и каждый из видов выдвигается на naviframe. Три взгляды:Native Tizen удалить naviframe item

Genlist_A> Progressbar> 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"); 
} 

В приведенном выше коде показано создание индикатора progressbar. Я видел в некоторых образцах, что используется 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 уточняет запрос. это новый вид (который содержит progressbar) не выскочил после нажатия кнопки «один раз»? Проверьте ссылку на навигацию Naviframe. [link] (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

Обновление Я нашел решение проблемы. Я был на правильном пути с выскакивают деталь от naviframe с помощью

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; 
} 

Что это делает его переход к указанной naviframe помечены как local_ad->startview и это было просто установлено путем установки Elm_Object_Item внутри genlist.

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

Это сработало для меня.