Senkronizasyon bağdaştırıcısı sağlayan bir Preference
sahibim ve geçiş yaptıklarında çalışmasını gerçekten yapmak için biraz zaman alıyor. Sonuç olarak, kullanıcı Preference
tıklattığında, işi yapmak için bir AsyncTask'ı kapatırım. Bu arada, Preference
'u devre dışı bırakın ve onay kutusunu ProgressBar
belirsiz bir şekilde değiştirin. Bunların hepsi, 'un üstündeki ProgressBar
'u kaplayan CheckBoxPreference
alt sınıfını içeren bir kesmek yoluyla çalışıyorum. Yuck.CheckBoxPreference'ın android aracılığıyla özelleştirilmesi: widgetLayout
android:widgetLayout
özniteliği bunun için tam olarak tasarlanmış gibi görünüyor. Varsayılan CheckBox
için bir değiştirme belirtmek için android:widgetLayout
kullanabilmeliyim. Söz konusu ikame, Checkable
'u uygulayacak ve CheckBox
ile ProgressBar
arasında uygun şekilde geçiş yapmak için ViewSwitcher
kullanın.
Tek sorun, CheckBoxPreference
, onBindView()
yönteminde android:widgetLayout
'un kullanılabilmesi olasılığını göz ardı etmesidir. Bu açıkça yapar:
View checkboxView = view.findViewById(com.android.internal.R.id.checkbox);
Bu etkin imkansız android:widgetLayout
yoluyla özel bir Checkable
içinde takas ve aslında işe sahip olmayı gerekli kılar.
Bu bir CheckBoxPreference
numaralı hata/hata mıdır, yoksa android:widgetLayout
yanlış anlaşılmış mı? Yapmaya çalıştığım şeyi yapmak için daha temiz bir amaç var mı?
Hiç bu bir çözüm buldunuz mu? Ben de vurdum. –
Gerçekten değil. CheckBoxPreference'ın [alt sınıfım] ile (https://github.com/loganj/foursquared/blob/master/main/src/com/joelapenna/foursquared/preferences/ProgressCheckBoxPreference.java) sıkıştım. – loganj