في نظام التشغيل Android 8.0، تكتسب قائمة "الإعدادات" العديد من المكوّنات والأدوات التي تغطي الاستخدامات الشائعة. ننصح الشركات المصنّعة للأجهزة والمطوّرين باستخدام المكوّنات الشائعة عند توسيع تطبيق "الإعدادات" لضمان اتّساق واجهات المستخدم الجديدة مع واجهة المستخدم الحالية في تطبيق "الإعدادات".
في ما يلي ملخّص للتحسينات:
- تغيير سلوك الفواصل في إطار عمل Preference في مكتبة الدعم يتم الآن رسم فاصل بين الفئات.
- تغيير مظهر شريط الإجراءات يستخدم شريط الإجراءات الآن نسق الألوان الفاتح مع نص بلون التمييز.
- تصميم جديد للإعدادات المفضّلة تبقى المساحة المخصّصة للرموز متاحة حتى عندما لا يتضمّن أحد الخيارات المفضّلة رمزًا.
التطبيقات المصغَّرة الجديدة:
- أداة رأسية لعرض تفاصيل التطبيق تعرض هذه السمة رمز التطبيق وتصنيفه وغير ذلك من المعلومات.
- زر توسيع على بعض الصفحات يمكن أن تبدأ الصفحة في وضع التصغير وإخفاء العناصر الأقل أهمية إلى أن ينقر المستخدم على زر التوسيع.
- واجهة مستخدم أداة اختيار التطبيقات التلقائية:
- واجهة المستخدِم لاختيار المتصفّح التلقائي وتطبيق الهاتف التلقائي وما إلى ذلك
- كانت في السابق مربّع حوار، وأصبحت الآن واجهة مستخدم تستند إلى أزرار اختيار في وضع ملء الشاشة.
- تفضيل أسلوب "MasterSwitch" هذا هو الإعداد المفضّل الذي يتضمّن هدفَين للنقر. يؤدي الهدف الأيسر إلى جزء أو هدف فرعي. الهدف الأيمن هو مفتاح تبديل يتحكّم في تفعيل الصفحة بأكملها أو إيقافها.
الأمثلة والمصدر
- سلوك الفاصل
- تم تعديل جميع الصفحات في "الإعدادات" لاستخدام سلوك الفاصل الجديد.
- يتم تحديد سلوك أداة التقسيم على أنّه ThemeOverlay في:
packages/apps/Settings/res/values/styles_preference.xml
- تغيير مظهر شريط الإجراءات
- تم تعديل جميع الصفحات في "الإعدادات" لاستخدام مظهر ActionBar الجديد.
- يتم تحديد المظهر في Theme.DeviceDefault.Settings
- تنسيق جديد للإعدادات المفضّلة
- تستخدم العديد من الصفحات في "الإعدادات" الآن تنسيق الإعدادات المفضّلة الجديد.
- يمكنك العثور على الرمز في:
packages/apps/Settings/res/values/styles_preference.xml
- تطبيق مصغّر لعنوان التطبيق
- تتضمّن معظم صفحات معلومات التطبيقات في "الإعدادات" حاليًا رأس التطبيق الجديد.
- يمكنك الاطّلاع على الأمثلة والرمز على الرابط:
packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
- زر التوسيع
- يمكنك الاطّلاع على الأمثلة والرمز على الرابط:
packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.javaملاحظة: يجب استخدام هذا المكوّن مع DashboardFragment. (يمكنك الاطّلاع على مزيد من التفاصيل حول DashboardFragment في هيكل المعلومات المعدَّل).
- يمكنك الاطّلاع على الأمثلة والرمز على الرابط:
- أداة اختيار التطبيقات التلقائية
- يمكنك العثور على رمز الصنف الأساسي في:
packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java - هناك العديد من الفئات الفرعية من DefaultAppPickerFragment، وينفّذ كل منها أداة اختيار لغرض مختلف.
- يمكنك العثور على رمز الصنف الأساسي في:
- MasterSwitch خيار النمط المفضّل
- الرمز هو:
https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java - من الأمثلة على حالات الاستخدام التبديل الأساسي إلى شبكة Wi-Fi. يمكنك الاطّلاع على مثال على ذلك على الرابط:
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
- الرمز هو:
التنفيذ
يمكن لمصنّعي الأجهزة البدء في استخدام جميع المكوّنات الجديدة فورًا. إذا قرّرت الشركات المصنّعة للأجهزة الأصلية تنفيذ إعدادات جديدة على غرار "مفتاح التحكّم الرئيسي" أو أداة اختيار التطبيقات التلقائية، عليها اتّباع الأمثلة الواردة في هذا المستند وملفات المراجع (Javadoc) المكتوبة مع كل مكوّن للحصول على مزيد من التفاصيل.
تخصيص قائمة الإعدادات
- سلوك المُقسِم لتغيير طريقة رسم الفاصل، عدِّل النمط الخاص بفواصل الإعدادات وغيِّر قيمة ما يلي:
allowDividerAboveallowDividerBelowallowDividerAfterLastItem
- لون مظهر شريط الإجراءات يجب أن تستخدم الأنشطة
Theme.DeviceDefault.Settingsكمظهر لها، أو إنشاء مظهر مخصّص باستخدامTheme.DeviceDefault.Settingsكعنصر رئيسي. - تطبيق مصغَّر لعنوان التطبيق استخدِم أدوات الضبط في AppHeaderController لتخصيص كل حقل واستدعِ
build()بعد ضبط جميع الحقول. - زر التوسيع:
- لإيقاف الوظيفة بالكامل، عليك إلغاء الدالة الإنشائية الخاصة بـ ProgressiveDisclosureMixin وضبط keepExpanded على "صحيح".
- لتخصيص عدد العناصر التي سيتم عرضها في البداية، استدعِ طريقة
ProgressiveDisclosureMixin.setTileLimit()أثناء طريقةonAttach(Context)الخاصة بالجزء.