У меня есть Предпочтение
, которое включает адаптер синхронизации и требует времени, чтобы фактически выполнить свою работу при переключении.Следовательно, когда пользователь щелкает предпочтение
, я отключаю AsyncTask для выполнения работы. А пока я отключаю Preference
и заменяю флажок неопределенным ProgressBar
. У меня все это работает с помощью хака, включающего подкласс CheckBoxPreference
, который накладывает ProgressBar
поверх CheckBox
. Фу.
Атрибут android: widgetLayout
кажется, что он предназначен именно для этого. Я должен иметь возможность использовать android: widgetLayout
, чтобы указать замену по умолчанию CheckBox
. Упомянутая замена будет реализовывать Checkable
и использовать ViewSwitcher
для надлежащего переключения между CheckBox
и ProgressBar
.
Единственная проблема заключается в том, что CheckBoxPreference
в своем методе onBindView ()
, похоже, игнорирует возможность использования android: widgetLayout
. Он явно делает следующее:
View checkboxView = view.findViewById(com.android.internal.R.id.checkbox);
Это фактически делает невозможным замену пользовательского Checkable
через android: widgetLayout
и заставить его работать.
Это недосмотр / ошибка в CheckBoxPreference
, или я неправильно понял android: widgetLayout
? Есть ли способ очистки, предназначенный для того, что я пытаюсь сделать?
android:widgetLayout – это правая часть предпочтения.В CheckBoxPreference виджетLayout является флажком. Если вы возьмете базовое предпочтение и поместите ViewSwitcher в widgetLayout, он должен работать