اندروید 12 یک طراحی دو قاب با منوی L0 استاتیک در سمت چپ و یک صفحه محتوا در سمت راست معرفی میکند. این ویژگی بسیاری از گزینه های سفارشی سازی جدید را معرفی می کند. این صفحه جزئیات این ویژگی ها را توضیح می دهد و توضیح می دهد که چگونه می توانید تنظیمات برگزیده خود را سفارشی کنید.
به تک پنجره برگردید
بهطور پیشفرض، CarSettings اکنون نمای دوتایی را هنگامی که عرض پنجره برنامه بزرگتر یا برابر با 1400dp باشد و در غیر این صورت نمای تک صفحه را نمایش میدهد. برای سفارشی کردن این مورد برای یک دستگاه خاص، از یک پوشش منبع زمان اجرا (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 بیضی است). آیکون ها با قرار دادن نماد پیش زمینه توسط top_level_foreground_icon_inset
از شکل پس زمینه ایجاد می شوند. هر نماد سطح بالا دارای یک رنگ پیش زمینه مشخص شده در res/values/colors.xml
و یک رنگ پس زمینه مشخص شده در پوشه res/color
است.
برای ایجاد یک ظاهر سفارشی، می توانید تمام مقادیر رنگ را لغو کنید.
شکل 2. اجزای ترجیحی سطح بالا
نمادهایی برای تنظیمات برگزیده تزریق شده که در دسته بندی های مشخص شده توسط config_top_level_injection_categories
قرار می گیرند نیز به عنوان نمادهای سطح بالا در نظر گرفته می شوند. نمادهای ارائه شده با همان مقدار و به همان شکلی که برای سایر نمادهای سطح بالا مشخص شده است قرار می گیرند (به بالا مراجعه کنید). با این حال، پس زمینه با نگاه کردن به ویژگی های زیر به ترتیب تعیین می شود:
-
com.android.settings.bg.argb
داده های متا از برنامه تزریق. -
com.android.settings.bg.hint
داده های متا از برنامه تزریق. -
top_level_injected_default_background
درres/values/colors.xml
مشخص شده است.
برای نادیده گرفتن داده های برنامه تزریق و همیشه استفاده از پس زمینه پیش فرض، config_top_level_injection_background_always_use_default
را روی true
تنظیم کنید.