في قائمة حكومية Android ، يتم تجاهل State_Focused
سؤال
يحتوي تطبيق Android الخاص بي ، الذي يستخدم جدولة لعرض محتوياته ، على 4 علامات تبويب تستخدم جميعها قائمة قابلة للرسمية للأيقونة. لديهم جميعًا نفس الهيكل ، فقط مع صور مختلفة:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/icon_options_dark" android:state_selected="true" android:state_focused="false" />
<item android:drawable="@drawable/icon_options_white" />
</selector>`
ومع ذلك ، عند تحديد علامات التبويب مع كرة التتبع على رغبة HTC الخاصة بي (تسليط الضوء على الأخضر) ، يتم استخدام الصورة المظلمة بدلاً من الضوء. بمجرد تحديد علامة التبويب بالفعل ، تصبح بيضاء. ما الخطأ الذي افعله؟
المحلول
تحتاج إلى وجود عناصر مختلفة لحالات مختلفة. من المؤكد أن الجمع بين العديد من الدول في عنصر واحد (كما فعلت) أمر خاطئ. يمكن أن تبدو XML الخاصة بك مثل هذا:
<xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/icon_options_dark"
android:state_selected="true" />
<item android:drawable="@drawable/icon_options_light"
android:state_focused="true" />
<item android:drawable="@drawable/icon_options_white" />
</selector>
عندما يتعلق الأمر برسم السحب الخاص بك ، يتم فحص حالتها أولاً. إذا تم تحديده ، سيتم استخدام العنصر الأول وسيتم إجراء أي شيك مركّز (يجد Android فقط أول - ليس "الأكثر صلة" - دولة). ولكن إذا لم يتم تحديده ، فسيتم إجراء فحص الحالة المركزة.