التخصيص المزدوج الجزء

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

العودة إلى جزء واحد

بشكل افتراضي ، يعرض CarSettings الآن عرض اللوحة المزدوجة عندما تكون نافذة التطبيق أكبر من أو تساوي 1400dp في العرض وعرض الجزء الفردي بخلاف ذلك. لتخصيص هذا لجهاز معين ، استخدم Runtime Resource Overlay (RRO) لاستهداف قيم التكوين الضرورية:

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

مفاتيح الرأس

نظرًا لأنه يمكن أن تحتوي أنشطة CarSettings المختلفة على IA مخصص ، يتم توفير تعيين مفتاح الرأس لتبسيط التخصيصات. في 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 عرض حجب UX المقيدة إلى أن يظهر في حالات 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 غير البيضاوي). يتم إنشاء الرموز التي insetting رمز المقدمة من قبل 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 .