الأنماط والمكونات

في Android 8.0، تتضمن قائمة "الإعدادات" العديد من المكونات والتطبيقات المصغّرة التي تغطي الاستخدامات الشائعة. ننصح الشركات المصنّعة للأجهزة والمطوّرين باستخدام المكونات الشائعة عند توسيع نطاق تطبيق "الإعدادات" حتى تظل واجهات المستخدم الجديدة متسقة مع واجهة مستخدم "الإعدادات" الحالية.

في ما يلي ملخّص للتحسينات:

  • تغيير سلوك الفاصل في إطار عمل الإعدادات المفضّلة لمكتبة الدعم يتم الآن رسم الفاصل بين الفئات.
  • تغيير مظهر ActionBar. يستخدم شريط الإجراءات الآن مظهر اللون الفاتح مع نص لوني.
  • تنسيق جديد للخيارات المفضّلة تظل المساحة الخاصة بالأيقونات حتى عندما لا يحتوي التفضيل على أيقونة.

أدوات جديدة:

  • أداة عنوان لتفاصيل التطبيق تعرض رمز التطبيق وتصنيفه ومعلومات أخرى.
  • زر توسيع في بعض الصفحات يمكن أن تبدأ الصفحة كمصغَّرة وتخفي العناصر الأقل أهمية حتى ينقر المستخدم على زر التوسيع.
  • واجهة المستخدم التلقائية لأداة اختيار التطبيقات:
    • واجهة المستخدم لاختيار المتصفّح التلقائي وتطبيق الهاتف التلقائي وغير ذلك
    • وقد أصبح في السابق مربّع حوار، وقد أصبح الآن واجهة مستخدم تعتمد على زر اختيار ملء الشاشة.
  • تفضيل نمط "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
    • هناك عدة فئات فرعية منDefaultApp PickerFragment، تنفّذ كل منها أداة اختيار لغرض مختلف.
  • خيار النمط 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

التنفيذ

يمكن للشركات المصنعة للأجهزة البدء في استخدام جميع المكونات الجديدة بطريقة غير تقليدية. إذا قرر المصنّعون الأصليون للأجهزة تنفيذ تفضيل جديد لنمط "MasterSwitch" أو منتقي تطبيقات تلقائي، يجب عليهم اتباع الأمثلة الواردة في هذا المستند والملفات المرجعية (Javadoc) المكتوبة مع كل مكون للحصول على مزيد من التفاصيل.

تخصيص قائمة الإعدادات

  • سلوك الفاصل. لتغيير طريقة رسم المُقسّم، غيِّر نمط الفواصل في الإعدادات وغيِّر القيمة لما يلي:
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • لون مظهر ActionBar يجب أن تستخدم الأنشطة Theme.DeviceDefault.Settings كمظهر لها أو إنشاء مظهر مخصص باستخدام Theme.DeviceDefault.Settings كمظهر رئيسي.
  • أداة عنوان التطبيق. يمكنك استخدام أدوات التصنيف في AppHeaderController لتخصيص كل حقل وطلب build() بعد ضبط جميع الحقول.
  • الزر "توسيع":
    • لإيقاف الوظيفة بشكل كامل، يمكنك تجاوز الدالة الإنشائية لـ Progressive المعلِنMixin وضبط القيمة Keepَّعة على القيمة "صحيح".
    • لتخصيص عدد العناصر التي سيتم عرضها في البداية، يمكنك استدعاء الطريقة ProgressiveDisclosureMixin.setTileLimit() خلال إجراء onAttach(Context) للجزء.