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

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

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

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

أدوات جديدة:

  • أداة عنوان لتفاصيل التطبيق تعرض رمز التطبيق وتصنيفه وغيرها من المعلومات.
  • زر توسيع في بعض الصفحات يمكن بدء الصفحة كمصغَّرة وإخفاء محتوى أقل. العناصر المهمة حتى ينقر المستخدم على زر التوسيع.
  • واجهة المستخدم التلقائية لأداة اختيار التطبيقات:
    • واجهة المستخدم لاختيار المتصفّح التلقائي وتطبيق الهاتف التلقائي وغير ذلك
    • وقد أصبح في السابق مربّع حوار، وقد أصبح الآن واجهة مستخدم تعتمد على زر اختيار ملء الشاشة.
  • A "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/+/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() بعد ضبط جميع الحقول.
  • الزر "توسيع":
    • لتعطيل الوظيفة بشكل كامل، تجاوز الدالة الإنشائية ProgressiveanceMixin وsetkeepexpand to true.
    • لتخصيص عدد العناصر التي سيتم عرضها في البداية، يمكنك طلب أثناء تنفيذ طريقة ProgressiveDisclosureMixin.setTileLimit() طريقة onAttach(Context).