Я думаю, у вас возникли трудности, потому что ваш дизайн хакерский, как вы признаете. Я думаю, что вам, вероятно, следует сделать так, чтобы ваш Activity прослушивал ориентацию устройства и использовал onPause/onResume
для регистрации изменений ориентации. Затем создайте пользовательский курсор, который обновляется операцией при его изменении. Затем пользовательский курсор может вызвать notifyDataSetChanged
, чтобы сообщить ListView
об обновлении. Затем в вызове getView
вы можете передать данные, необходимые для правильного отображения стрелки. Таким образом, обновляются только те стрелки, которые видны. У вас будет только одно место, где вы получаете данные об ориентации, и позже вы сможете обработать onScrollStateChanged
и прекратить обновлять стрелки, когда пользователь выполняет прокрутку, если это слишком сильно влияет на анимацию прокрутки.