이중 창 사용자 정의, 이중 창 사용자 정의

Android 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 BaseFragment 인스턴스에 표시되는 UX 제한 차단 보기입니다.

그림 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 로 설정하세요.

,

Android 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 BaseFragment 인스턴스에 표시되는 UX 제한 차단 보기입니다.

그림 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 로 설정하세요.