2016-11-23 106 views
1

我與需求的應用程序,我們需要創建一個動態圖像畫廊,幾minutes.When刷新後刷新工作發生三件事情應該發生,而不重新加載頁面Codenameone刷新圖像的列表,而無需重新加載頁面

1)已過時的圖像應被刪除 2)新的圖像應該被添加 3)非作廢圖像應該留(未加載) 4)的圖像應該被彼此相鄰地堆疊,因爲它會在片劑中大多使用

我正在看Boxlayout或FlowLayout,我可以添加圖像,但我不知道如何動態刪除它。我是一個ble爲圖像組件設置UUID,但無法獲取基於UUID的組件以將其刪除。如何根據添加到表單的UUID獲取組件? 這是正確的方法嗎?或者已經有內置的組件可以做到這一點。

我看到這個
How to add dynamic data in the renderer created using UI builder?

But I also read using List is discouraged 

https://www.codenameone.com/javadoc/com/codename1/ui/list/package-summary.html 

回答

0

這其實是很簡單的一個BoxLayout.Y_AXISContainer做。當你創建一個圖像組件添加到框佈局做到這一點:

myImageComponent.putClientProperty("imageId", imageId); 

然後當你有回調刷新列表只是做這樣的事情:

for(Component cmp : parentContainer) { 
    String id = (String)myImageComponent.getClientProperty("imageId"); 
    if(!existsInNewList(id)) { 
     cmp.remove(); 
    } 
} 

當您完成更新容器只需撥打animateLayout(200)revalidate()即可刷新UI。

+0

這個工作,animatLayout(200)似乎給更好的用戶界面體驗 – bhakav

+0

是的,只是你可以用Container做的事情之一,你不能用List ... FYI當一個答案是正確的,你應該接受它理想情況下,讓它和你的人在SO上相當有用的答題點一致。您通過單擊答案旁邊的複選框來接受答案。 –

+0

後續問題,提取數據的最佳做法是什麼。該應用程序將運行(不在後臺),圖像將每隔15秒進行一次。我正在考慮使用抓取,但我閱讀文檔,在IOS中它只是視覺通知,需要人工交互。 「如果用戶點擊推送通知彈出窗口,iiOS只會嚮應用程序發送推送通知(如果正在運行)或者 !」。投票是更好的選擇還是有其他方法嗎? – bhakav

相關問題