簡體   English   中英

Native Tizen - 如何刪除圖像?

[英]Native Tizen - How to remove image?

添加新窗口並彈出它的工作原理基於 Tizen 開發人員文檔教程 但是當我在第二個窗口上添加圖像時,彈出它后,圖像並沒有消失。

這是添加了圖像的第二個窗口上的代碼:

static void list_item_doubleclicked_cb(void *data, Evas_Object *obj, void *event_info){
Evas_Object *navi_button;
Evas_Object *nf = data;
Elm_Object_Item *nf_it;


Evas_Object *image = elm_image_add(nf);
evas_object_move(image, 0, 0);
evas_object_resize(image, 400, 300);
evas_object_show(image);

char img_path[128];
char *res_path = app_get_resource_path();
snprintf(img_path, sizeof(img_path), "%s%s%s", res_path, "images/","myImage.png");

elm_image_file_set(image, img_path, NULL);


navi_button = elm_button_add(nf);
elm_object_text_set(navi_button, "Prev");
elm_object_style_set(navi_button, "bottom");
evas_object_smart_callback_add(navi_button, "clicked",
                               prev_btn_clicked_cb, nf);

nf_it = elm_naviframe_item_push(nf, "Second view", NULL,
                                NULL, navi_button, NULL);
}

這里的 pop 函數可以清除按鈕和第二個窗口標題,但不會清除圖像。

所有其他代碼都類似於鏈接的教程。 圖像留在屏幕上。 我需要刪除它,我該怎么做?

里法特。

基本上 Evas 對象不屬於任何智能對象父對象。 它的生命周期和基本行為獨立工作,不受管理。 因此,您需要手動控制它。 但是,如果將圖像對象添加到特定的智能對象父級,則圖像實例可由其父級管理。 意思是,如果父項被刪除,它的子項也會被刪除。 大多數情況下 *Container 小部件用作智能對象父級。

您正確創建了一個圖像對象。但是您沒有將它放入任何容器中。 Naviframe 被設計為具有容器的視圖,例如 elm_layout、elm_box、grid、table 等。您可以在將子項放入容器的同時使用其中之一組成視圖。 因此,當發生 naviframe 彈出時,布局將被 naviframe 刪除,並且它的子項(包括您的圖像)也將被刪除,因為它是容器的子項。

否則,您應該通過顯式調用 evas_object_del(); 刪除圖像對象。 當視圖彈出時。 或者在推送進一步視圖時通過調用 evas_object_hide() 隱藏它。

希望我的描述能被你理解。 謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM