デュアルペインのカスタマイズ

Android 12 では、左側に静的な L0 メニュー、右側にコンテンツ ペインを備えたデュアル ペイン設計が導入されています。この機能により、多くの新しいカスタマイズ オプションが導入されます。このページでは、これらの機能について詳しく説明し、独自の設定をカスタマイズする方法について説明します。

単一ペインに戻す

デフォルトでは、アプリ ウィンドウの幅が 1400 dp 以上の場合、CarSettings はデュアル ペイン ビューを表示し、それ以外の場合は単一ペイン ビューを表示するようになりました。これを特定のデバイス用にカスタマイズするには、ランタイム リソース オーバーレイ (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 2 つのペインを分割する垂直線。その幅は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_defaulttrueに設定します。