This is a bug. Here the `headerView` property can be set in any arbitrary thread, and only `notifyDataChange` ensured the UI thread prior to calling `adapter.notifyDataSetChanged`. This fix makes sure that that the property change and adapter.notifyDataSetChanged are both called in the same code block on the UI thread, as required by Android. Fixed this for `headerView`, `headerTitle`, 'footerView`, `footerTitle`.