在 BaseAdapter 中直接將 Item 設為 View.GONE 並不能真正隱藏 Cell,因為該位置仍會保留分隔線與空間。要真正隱藏部分資料列,應從資料來源著手。
List visibleBeans = new ArrayList<>();
for (Bean bean : beans) {
if (bean.isVisable()) {
visibleBeans.add(bean);
}
}
adapter.setData(visibleBeans);
adapter.notifyDataSetChanged();
這樣既不刪除原始資料,又能讓 ListView 不顯示不需要的 Cell,也不會留下分隔線殘留。