تخصيص اللوحة المزدوجة

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

الرجوع إلى اللوحة الواحدة

يعرض تطبيق CarSettings الآن تلقائيًا طريقة العرض المكوّنة من لوحتَين عندما يكون عرض نافذة التطبيق أكبر من 1400dp أو يساويه، ويعرض طريقة العرض المكوّنة من لوحة واحدة في الحالات الأخرى. لتخصيص هذا لجهاز معيّن، استخدِم تراكب موارد وقت التشغيل (RRO) لاستهداف قيم الإعدادات اللازمة:

القيمة الوصف
config_global_force_single_pane اضبط القيمة على true إذا كان سيتم تشغيل التطبيق بأكمله في وضع اللوحة الواحدة.
config_homepage_fragment_class تُحدِّد المقتطف الأوّلي للصفحة الرئيسية. في وضع "الشريحة المزدوجة"، يتم استخدام هذا الخيار لتحديد المقتطف الأولي في لوحة المحتوى. في اللوحة الواحدة، يجب أن يكون هذا المقتطف هو مقتطف الصفحة الرئيسية.

مفاتيح العناوين

بما أنّ أنشطة CarSettings المختلفة يمكن أن تتضمّن واجهة مستخدم مخصّصة، يتم توفير تعيين مفتاح العنوان لتبسيط عمليات التخصيص. في AndroidManifest.xml، يحتوي كل نشاط يتوافق مع وضع "لوحةَان" على TOP_LEVEL_HEADER_KEY محدّد في البيانات الوصفية. تشير هذه القيمة إلى مفتاح محدّد في res/values/header_keys.xml، والذي يتم ربطه بمفتاح الإعدادات المفضّلة لعنصر القائمة من المستوى الأعلى الذي يندرج تحته الجزء الافتتاحي. لذلك، في حال تغيير المقتطف الأوّلي لنشاط معيّن أو إعادة ترتيب ملف IA بحيث يقع مقتطف معيّن ضمن إعدادات مفضّلة مختلفة من المستوى الأعلى، يمكن تعديل عمليات الربط ذات الصلة في ملف header_keys.xml لتحديد القيمة الصحيحة.

تخصيص تنسيق النشاط

يمكن العثور على تنسيق BaseCarSettingsActivity في res/layout/car_setting_activity وفي الأقسام التالية:

القيمة الوصف
top_level_menu جزء من القائمة ذات المستوى الأعلى يظهر في الإعدادات المزوّدة بشقّين يتم تحديد عرض هذا القسم بواسطة top_level_menu_width. يتم عرض تنسيق قاعدة الشاسيه (مع شريط الأدوات) حول هذا العرض.
top_level_divider خط عمودي يقسم النافذتَين ويمكن تخصيص عرضه باستخدام top_level_divider_width.
fragment_container_wrapper تنسيق الغلاف للوحة المحتوى (أو اللوحة الرئيسية في الإعداد المكوّن من لوحة واحدة) يتم لفّ تنسيق أساسي للهيكل (مع شريط الأدوات) حول هذا العرض.
settings_focus_parking_view التنفيذ المخصّص لـ FocusParkingView للحفاظ على التركيز الدوّار عند الحاجة
fragment_container حاوية المحتوى الرئيسي وتستخدم أجزاء المحتوى هذا كتنسيق مستهدَف.
restricted_message عرض الحظر المحدود لتجربة المستخدم ليتم عرضه على نُسخ BaseFragment

الشكل 1: تنسيق اللوحة المزدوجة

الإعدادات المفضّلة على مستوى أعلى

الإعدادات المفضّلة ذات المستوى الأعلى هي CarUiPreferences مخصّصة بتنسيق معدَّل قليلاً لتغيير ارتفاع الإعدادات المفضّلة وشكل الخلفية. هناك العديد من الطرق المختلفة لتخصيص مظهر هذه الخيارات المفضّلة:

القيمة الوصف
res/layout/top_level_preference.xml التراكب على تنسيق الإعدادات المفضّلة الكاملة
top_level_preference_min_height الحد الأدنى لارتفاع الإعدادات المفضّلة ذات المستوى الأعلى استنادًا إلى المحتوى (على سبيل المثال، إذا كان هناك ترجمة ملفوظة )، قد تكون الإعدادات المفضّلة أطول من هذه القيمة.
top_level_preference_corner_radius نصف قطر التقريب في الزاوية.
top_level_preference_background خلفية الإعدادات المفضّلة على المستوى الأعلى عندما لا تكون مميّزة حاليًا
top_level_preference_highlight خلفية الإعدادات المفضّلة ذات المستوى الأعلى عند تمييزها

الرموز ذات المستوى الأعلى

يوضّح الشكل 2 كيف تتكوّن الرموز من المستوى الأعلى الآن من رمز متّجه داخل شكل خلفية ملون. تم ضبط هذا الشكل حاليًا ليتوافق مع شكل بيضاوي أو مستطيل. يتم ضبط الشكل تلقائيًا على بيضاوي.

لتغيير القيمة التلقائية، عدِّل القيمة في config_top_level_icon_shape (حيث يكون 0 مستطيلاً و1 بيضاويًا). يتم إنشاء الرموز من خلال إدراج رمز المقدّمة باستخدام الرمز top_level_foreground_icon_inset من شكل الخلفية. يحتوي كل رمز من رموز المستوى الأعلى على لون واجهة محدّد في res/values/colors.xml ولون خلفية محدّد في مجلد res/color.

لإنشاء مظهر مخصّص، يمكنك إلغاء جميع قيم الألوان.

الشكل 2: مكوّنات الإعدادات المفضّلة ذات المستوى الأعلى

تُعامل أيضًا رموز الإعدادات المفضّلة المُدرَجة ضمن الفئات المحدّدة باستخدام config_top_level_injection_categories كرموز من المستوى الأعلى. يتمّ إدراج الأيقونات المقدّمة بالقيمة نفسها وبالشكل نفسه المحدّد لجميع الأيقونات الأخرى ذات المستوى الأعلى (راجِع أعلاه). ومع ذلك، يتم تحديد الخلفية من خلال النظر في السمات التالية بهذا الترتيب:

  1. com.android.settings.bg.argb البيانات الوصفية من التطبيق الذي يتمّ من خلاله حقن البيانات
  2. com.android.settings.bg.hint البيانات الوصفية من التطبيق الذي يتمّ من خلاله حقن البيانات
  3. top_level_injected_default_background تم تحديده في res/values/colors.xml.

لتجاهل بيانات التطبيق التي يتم حقنها واستخدام الخلفية التلقائية دائمًا، اضبط config_top_level_injection_background_always_use_default على true.