您正在刪除視圖,但它不需要銷燬,所以它們繼續佔用內存資源。
最好使用適配器的某種列表,如ListView或RecyclerView,以便您可以添加或刪除視圖,並且它們只會在顯示時佔用內存(或顯示更多兩個內容的所有內容)。
你可以這樣做:
ArrayList<String> listItems = new ArrayList<>();
listaItems.add(yourString); // call that ever you have to add new itens
ArrayAdapter<String> itemsAdapter =
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems);
ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(itemsAdapter);
,除去做這樣的事情:
listaItems.remove([INDEX]);
itemsAdapter.notifyDataSetChanged();
網格佈局是動態網格/列表一個不錯的選擇......你爲什麼不使用RecyclerView /列表顯示? – Selvin
這聽起來對我來說,每當你填充網格時,你都會添加一個新項目列表來顯示,而不會刪除舊項目。然後,當你不斷添加新的項目集合,這個列表變得非常大,而且你的內存不足。 – NoChinDeluxe
@Selvin yea ..看來我必須用一些回收視圖替換gridLayout然後再試一下。 – usman