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
で指定されたカテゴリに分類される、挿入された設定のアイコンも、トップレベルのアイコンとして扱われます。提供されたアイコンは、他のすべての最上位アイコンに指定されているものと同じ値で同じ形状に挿入されます (上記を参照)。ただし、背景は、次の属性をこの順序で確認することによって決定されます。
-
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
に設定します。