Я работаю над приложением планшета с двумя фрагментами в основном действии. Левый фрагмент - это фрагмент списка, содержимое которого обновляется, когда пользователь выбирает вкладку или выбирает элемент из 2 прядильщиков в ActionBar.Изменение ориентации ориентации панели действий Android - вызовы tabSeleceted & ItemSelected методы
Первоначально я обработал изменение ориентации, переопределив onConfigurationChanged. Поскольку это не рекомендуется Google, и это вызывает проблемы с ActionBarSherlock, я начал работу над тем, чтобы делать это правильно. Я установил, чтобы мои фрагменты сохраняли свой экземпляр (setRetainInstance) для изменений ориентации.
Проблема в том, когда ориентация изменяет метод OnCreate для активности, добавляет вкладки в панель действий и выбирает один, вызывающий перезагрузку списка. Это также происходит с прядильщиками, так как при вращении выбирается новый элемент. При изменении ориентации фрагмент списка не нуждается в обновлении.
Я знаю, что можно сохранить вкладку и состояние счетчика, но как остановить список от обновления, поскольку это делается в методах onTabSelected и onItemSelected?
Мне удалось сделать это, сохранив целое число из числа изменений в панели действий. Я сохраняю это значение в методе onSaveInstanceState. Затем я получаю это в oncreate. В методах onTabSelected и onItemSelected я проверяю этот счетчик, если он больше 0, я уменьшаю его, а затем возвращаю без какого-либо серьезного обновления. Тип как семафор счёта, но без потоков :) – bencallis