not inflate every time, instead notifyDatasetChanged