패널 구성

패널 은 차지하는 영역의 속성을 설명하고 앱 컨테이너 역할을 합니다. XML 구성을 사용하여 패널을 정의합니다. 패널은 UI를 맞춤설정하는 유연하고 코드가 필요 없는 접근 방식을 제공합니다. 인스턴스와 상태를 관리하기 위해 시스템은 정의된 패널을 추적합니다.

패널 목록

시스템 UI는 window_states라는 배열 리소스에서 패널 정의를 로드합니다. 이 리소스 배열은 개별 패널 구성이 정의된 XML 파일을 가리킵니다. 이 중앙 집중식 접근 방식은 확장 가능한 UI에서 관리하는 패널이 의도한 대로 로드되고 시스템에서 사용할 준비가 된다는 것을 의미합니다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <array name="window_states">
       <item>@xml/app_panel</item>
       <item>@xml/back_panel</item>
       ...
   </array>
</resources>

패널 정의

확장 가능한 UI 프레임워크의 각 패널은 <TaskPanel> 또는 <DecorPanel>이라는 XML 태그로 정의됩니다. <TaskPanel>은 앱 컨테이너의 속성을 설명하고 <DecorPanel>은 뷰 컨테이너의 속성을 설명합니다. 시스템 UI는 이러한 패널 정의를 로드하고 다른 구성이 로드될 때까지 패널을 추적합니다. 예를 들어 회전 또는 명시적 시스템 요청으로 인한 구성 변경이 있습니다. <TaskPanel><DecorPanel>은 구성 가능한 UI 구성요소를 통해 맞춤 환경을 빌드하기 위한 기본 구성요소 역할을 합니다.

XML 속성

<TaskPanel> 태그에는 상태 와 전환을 정의하는 데 사용할 수 있는 이러한 속성이 포함될 수 있습니다.

속성 상태 설명
id 필수 패널의 고유 식별자를 지정합니다. 이 속성은 `PanelPool`에서 패널을 가져오고 시스템 내에서 상태를 관리하는 데 사용됩니다.PanelPool
role 필수 시스템에서 패널의 목적 또는 기능을 정의합니다. 값 은 문자열 리소스, 구성요소 이름의 문자열 배열 또는 레이아웃 ID를 참조할 수 있습니다. 예를 들어 패널에 항상 표시되어야 하는 영구 활동 또는 확장할 레이아웃을 정의할 수 있습니다.
defaultVariant 선택사항 패널이 로드될 때 처음에 채택해야 하는 옵션의 ID를 지정합니다. 지정하지 않으면 시스템에서 정의된 첫 번째 옵션을 기본값으로 사용할 수 있습니다.
displayId 선택사항 패널이 표시될 디스플레이의 ID를 지정합니다. 나타납니다.
defaultLayer 선택사항 옵션이 레이어를 명시적으로 정의하지 않는 경우 패널 옵션의 기본 Z 순서를 지정할 수 있습니다.
controller 선택사항,
변경될 수 있음

구성 값을 맞춤 패널 컨트롤러에 저장하고 전달할 수 있는 패널별 컨트롤러를 정의하는 리소스 (일반적으로 XML ID)를 참조합니다.

이러한 컨트롤러는 com.android.car.scalableui.panel.TaskPanelController 인터페이스를 구현해야 합니다. 이러한 컨트롤러의 일반적인 사용 사례는 패널에서 유연한 런타임 태스크 할당을 정의하는 것입니다.

XML 하위 요소

<TaskPanel><DecorPanel> 태그에는 이러한 하위 요소가 포함되어 특성과 기본 동작을 정의할 수 있습니다.

속성 설명
<Variant>

중첩된 태그는 특정 시점에 패널의 특정 시각적 구성을 설명합니다. 패널에는 여러 옵션이 있을 수 있으며 각 옵션은 고유한 ID로 식별됩니다.

각 옵션은 특정 구성의 경계, 표시 상태, 레이어, 알파, 모서리 반지름, 삽입 영역과 같은 속성을 정의합니다. 옵션 은 상위 옵션에서 속성을 상속할 수도 있습니다.

<KeyFrameVariant> <Variant>의 확장 프로그램을 사용하면 연속 비율 값 (0~1)을 기반으로 여러 옵션 간에 시각적 속성을 보간할 수 있으며 패널의 상태가 드래그 양과 같은 연속 입력에 따라 달라지는 드래그 작업 중에 부드럽고 동적인 전환에 사용됩니다.
<Transitions>

중첩된 태그에는 UI가 여러 옵션 간에 애니메이션 처리되는 방법을 설명하는 <Transition> 정의 모음이 포함되어 있습니다.

<Transition>fromto 옵션, 트리거하는 이벤트를 정의하고 애니메이션에 사용할 맞춤 애니메이터와 기간 및 보간기를 선택적으로 지정할 수 있습니다.

<TaskPanel> 태그에는 이러한 특수 하위 요소가 포함되어 태스크와 관련된 동작을 정의할 수도 있습니다.

속성 설명
<Restart> TaskPanel이 비어 있을 때 적용할 재시작 정책을 설명하는 중첩된 태그입니다. 이 태그는 policy로 설정할 수 있는 DEFAULT 또는 LAST 속성과 시간 초과 전에 재시도를 시도할 횟수를 지정하는 maxRetry를 지원합니다.
<TaskBehavior> 이 패널에서 태스크 실행의 동작을 설명하는 중첩된 태그입니다. 이 태그는 이 TaskPanel에서 새 태스크 실행의 동작을 구성하는 newTaskLaunchPolicy 속성을 지원합니다. 이 정책의 유효한 구성 값은 DEFAULT, REMAIN_IN_SOURCE, 또는 REPARENT_TO_SOURCE입니다.

샘플 코드

<TaskPanel id="@+id/panelId"
           role="@array/roleValue"
           defaultVariant="@id/closed"
           displayId="0" >

 <Variant id="@+id/base">
        <Bounds left="0" top="0" width="100%" height="100%"/>
 </Variant>

<Variant id="@+id/opened" parent="@id/base">
    <Visibility isVisible="true"/>
</Variant>
<Variant id="@+id/closed"  parent="@id/base">
    <Visibility isVisible="false"/>
</Variant>

<Transitions>
    <Transition fromVariant="@id/closed"
                toVariant="@id/opened"
                onEvent="open_event"/>
        <Event id="_System_TaskOpenEvent" panelId="@id/panelId" />
    </Transition>
</Transitions>
</TaskPanel>