wear protolayout

  
이 라이브러리를 사용하면 원격 노출 영역에서 렌더링/평가할 UI 레이아웃 및 비 UI 표현식을 정의할 수 있습니다.
최근 업데이트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
2024년 8월 7일 1.2.0 - - -

종속 항목 선언

wear-protolayout의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용을 알아보려면 Google Maven 저장소를 읽어보세요.

다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.

Groovy

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation "androidx.wear.protolayout:protolayout-expression:1.2.0"

    // Use to implement support for Wear ProtoLayout
    implementation "androidx.wear.protolayout:protolayout:1.2.0"

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation "androidx.wear.protolayout:protolayout-material:1.2.0"
}

Kotlin

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation("androidx.wear.protolayout:protolayout-expression:1.2.0")

    // Use to implement support for Wear ProtoLayout
    implementation("androidx.wear.protolayout:protolayout:1.2.0")

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation("androidx.wear.protolayout:protolayout-material:1.2.0")
}

종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.

의견

제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.

새로운 문제 제출하기

자세한 내용은 Issue Tracker 문서를 참고하세요.

버전 1.2

버전 1.2.0

2024년 8월 7일

androidx.wear.protolayout:protolayout-*:1.2.0이 출시되었습니다. 버전 1.2.0에 포함된 내용. 이 커밋을 실행합니다.

1.1.0 이후 중요 변경사항

  • 가변 축에 대한 추가 글꼴 지원과 향후 Flex 글꼴을 지원하는 더 나은 글꼴 선택 API를 포함하도록 FontStyle가 업데이트되었습니다.
  • 추가 수정자 지원: <ph type="x-smartling-placeholder">
      </ph>
    • 애니메이션 유무에 관계없이 변환, 회전, 크기 조정을 제공하는 변환 수정자입니다.
    • 각 모서리 반경에 다른 값 (가로 및 세로)을 지정합니다.
  • 클릭 가능 수정자를 사용하는 요소의 탭 가능 영역을 48dpx48dp 이상으로 확장하여 모든 터치 영역의 접근성을 개선했습니다.
  • 다양한 화면 크기에서 이러한 레이아웃의 반응형 동작을 더 효과적으로 지원하고 카드 일관성을 개선하기 위해 setResponsiveContentInsetEnabled를 추가하여 PrimaryLayoutEdgeContentLayout를 개선했습니다.
  • Android 14의 비선형 글꼴 크기 조정에 맞게 Material Text의 배율을 개선했습니다.
  • 모든 원호 요소의 RTL 레이아웃 방향 지원이 개선되었습니다.

추가 변경사항

  • 버전 1.1.0에 도입된 모든 변경사항을 보려면 beta01 출시 노트를 참조하세요.

버전 1.2.0-rc01

2024년 7월 24일

androidx.wear.protolayout:protolayout-*:1.2.0-rc01이 출시되었습니다. 버전 1.2.0-rc01에 포함된 커밋을 확인하세요.

버그 수정

  • 기본 또는 보조 라벨이 전달되지 않은 경우에만 아이콘으로 사용할 수 있도록 표준 머티리얼 칩을 수정했습니다. 추가했습니다. (Iceef9)
  • 레이아웃을 더 쉽게 이해할 수 있도록 관련 페이지의 시각 자료를 포함하도록 Material 레이아웃 문서를 업데이트했습니다. 추가했습니다. (I0256a)

버전 1.2.0-beta01

2024년 7월 10일

androidx.wear.protolayout:protolayout-*:1.2.0-beta01이 출시되었습니다. 버전 1.2.0-beta01에 포함된 커밋을 확인하세요.

새로운 기능

Wear ProtoLayout의 1.2.0-beta01 버전은 이 라이브러리 출시의 기능이 완전하고 API가 잠겨 있음을 나타냅니다 (시험용으로 표시된 경우는 제외). Wear ProtoLayout 1.2에는 다음과 같은 새로운 기능 및 API가 포함되어 있습니다.

  • 다음과 같이 추가 글꼴을 지원하도록 FontStyle가 업데이트되었습니다. <ph type="x-smartling-placeholder">
      </ph>
    • 다른 글꼴 변형 설정(예: FontSetting.weight, FontSetting.width)을 설정합니다.
    • 모든 숫자 문자에 동일한 너비 설정 - 표 형식 숫자 (FontSetting.tnum 글꼴 기능 설정)
    • 사용할 기본 글꼴 모음 이름을 지정하여 예정된 플렉스 글꼴을 지원하도록 글꼴 선택 API를 개선했습니다.
  • 비대칭 모서리가 있는 건물 요소를 허용하도록 별도의 가로 및 세로 값으로 각 CornerRadius를 지정할 수 있도록 Corner 수정자를 확장했습니다.
  • LayoutElement의 변환, 회전, 크기 조정을 제공하는 새로운 Transformation 수정자를 추가했습니다. 동적 값을 사용하여 이러한 변환을 애니메이션으로 표시할 수 있습니다.
  • 다양한 레이아웃 방향 (예: LTR, RTL)을 더 효과적으로 지원하기 위해 모든 원호 요소 (Arc, ArcLine, ArcText)에 Clockwise, CounterClockwise, Normal 옵션이 있는 setArcDirection를 추가했습니다.
  • Clickable 수정자를 사용하는 요소의 탭 가능 영역을 48dpx48dp 이상으로 확장하여 모든 터치 영역의 접근성을 개선했습니다.
  • 다양한 화면 크기에서 이러한 레이아웃의 반응형 동작을 더 효과적으로 지원하고 카드 일관성을 개선하기 위해 setResponsiveContentInsetEnabled를 추가하여 PrimaryLayoutEdgeContentLayout를 개선했습니다. 빠른 수정을 통해 이러한 API 사용을 제안하는 린터 경고를 추가했습니다.
  • Android 14의 비선형 글꼴 크기 조정에서 Material Text의 크기 조정/비크기를 개선했습니다.

API 변경사항

  • 기본 글꼴 모음 이름 (DEFAULT_SYSTEM_FONT)이 preferredFontFamilies API를 사용하지 않음을 의미하므로 삭제됩니다. 추가했습니다. (I39dab)
  • FontSetting.width에 전달되는 매개변수는 양수여야 합니다. 추가했습니다. (I1266f)

버전 1.2.0-alpha05

2024년 6월 26일

androidx.wear.protolayout:protolayout-*:1.2.0-alpha05이 출시되었습니다. 버전 1.2.0-alpha05에 포함된 커밋을 확인하세요.

새로운 기능

  • Material.CompactChiphasText 메서드를 추가하여 텍스트 콘텐츠가 설정되었는지 확인합니다. 추가했습니다. (I6e8fc)

API 변경사항

  • FontFamily const가 Builder 클래스가 아닌 FontStyle에 있도록 이동합니다. (I06ced)
  • 범위 주석을 포함하도록 FontSetting.weightFontSetting.width API를 업데이트하고 가중치의 매개변수를 int로 변경합니다. 추가했습니다. (Ia726c)

버그 수정

  • Material 라이브러리의 확장 불가능한 텍스트가 이제 Android 14의 비선형 글꼴 크기 조정에서 올바르게 작동합니다. 추가했습니다. (I6601e)

버전 1.2.0-alpha04

2024년 5월 29일

androidx.wear.protolayout:protolayout-*:1.2.0-alpha04이 출시되었습니다. 버전 1.2.0-alpha04에 포함된 커밋을 확인하세요.

API 변경사항

  • 2개의 값으로 각 모서리의 반경을 별도로 지정할 수 있도록 비대칭 모서리 API를 추가했습니다. 추가했습니다. (Icbd69)
  • FontSetting API가 다음을 포함하도록 확장되었습니다. <ph type="x-smartling-placeholder">
      </ph>
    • 예를 들어 글꼴을 표 형식으로 설정하는 등의 글꼴 기능 설정이 포함됩니다. 추가했습니다. (If12b7)
    • 가변 글꼴의 맞춤 너비 설정과 같은 글꼴 변형 설정을 지원합니다. 추가했습니다. (I2b36d)
  • 사용해야 하는 글꼴 모음의 순서 목록을 지정할 수 있도록 글꼴 모음 API를 FontStyle에 추가했습니다. 추가했습니다. (Iba9f5)
  • 머티리얼 LayoutDefaults에서 콘텐츠와 보조 라벨 사이의 공간 높이 상수의 이름을 PrimaryLayoutEdgeContentLayout에 모두 적용할 수 있으므로 처음에 'Edge 콘텐츠' 접두사가 붙은 더 일반적이 되도록 이름을 바꿨습니다. 추가했습니다. (I4dc32)

버그 수정

  • 가변 글꼴 축의 이름을 axisName에서 axisTag로 바꿨습니다. 추가했습니다. (I02ba3)

버전 1.2.0-alpha03

2024년 5월 14일

androidx.wear.protolayout:protolayout-*:1.2.0-alpha03이 출시되었습니다. 버전 1.2.0-alpha03에 포함된 커밋을 확인하세요.

새로운 기능

  • FontStyle의 사용자 지정 가중치 값을 설정하는 API를 추가했습니다. 추가했습니다. (I7390a)

버그 수정

  • 빈 대상 맵으로 인한 getTouchDelegateInfo의 실패 문제를 수정합니다. 추가했습니다. (I2accf)

버전 1.2.0-alpha02

2024년 5월 1일

androidx.wear.protolayout:protolayout-*:1.2.0-alpha02이 출시되었습니다. 버전 1.2.0-alpha02에 포함된 커밋을 확인하세요.

API 변경사항

  • 클릭 가능한 개별 요소에 대한 물결 효과 피드백을 사용 중지할 수 있도록 지원을 추가했습니다. 추가합니다. (If1ede)
  • 변환을 위한 API는 ArcModifiers에서 이 기능을 지원하지 않으므로 삭제되었습니다. (Ic0827)
  • ArcDirectionProp 빌더는 이제 생성자의 값을 예상합니다. 추가했습니다. (I76ada)
  • PlatformDataValues.Builder.putAll 메서드를 사용하면 하나의 PlatformDataValue을(를) 다른 항목으로 병합할 수 있습니다. 추가했습니다. (I50ba3)
  • Text#setIsScalable에서 Text#setScalable로 이름이 변경되었습니다. 추가했습니다. (If920e)
  • Material Text는 확장 가능한 크기 (사용자 글꼴 크기가 변경되면 커짐)를 사용할지 여부를 설정할 수 있습니다. 추가합니다. (Ibc849)
  • 콘텐츠 설명을 TitleChip로 설정하는 옵션을 추가했습니다. 추가했습니다. (I5d21f)
  • CompactChip가 아이콘에서만 올바르게 작동하고 이 옵션을 허용하도록 API를 업데이트하도록 수정되었습니다. 추가했습니다. (I6589e)

버그 수정

  • 초기화 중 잠재적인 중복 플랫폼 데이터 문제가 수정되었습니다. 추가했습니다. (Iba0fd)
  • DynamicDataNode에 새 getter를 도입하여 노드 비용을 가져옵니다. 이 비용은 동적 노드 할당량을 획득할 때 사용됩니다. 현재 고정 값이 있는 노드의 비용은 0이고, 다른 모든 노드의 비용은 1입니다. 추가했습니다. (Ia33e1)
  • NO_OP_QUOTA_MANAGER에서 집계 로직을 삭제합니다. 추가했습니다. (Ib50b8)
  • setResponsiveContentInsetEnabled 없이 PrimaryLayout가 사용될 때 경고를 보고하고 빠른 수정을 제공하는 린트 규칙을 추가했습니다. 추가했습니다. (I12025)
  • 동적 표현식 노드의 수에는 제한이 있습니다. 추가했습니다. (Iffae8)

버전 1.2.0-alpha01

2024년 3월 6일

androidx.wear.protolayout:protolayout-*:1.2.0-alpha01이 출시되었습니다. 버전 1.2.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

  • 이제 ProtoLayout Arc 요소에 ArcDirection (Clockwise, Counterclockwise 또는 Normal)를 추가할 수 있는 옵션이 있습니다. 이 동작을 Arc, ArcLine 또는 ArcText에 추가하면 RTL 레이아웃에서 동작이 수정됩니다. 추가했습니다. (I90699)
  • EdgeContentLayout를 새로운 setResponsiveContentInsetEnabled setter로 업데이트하여 UX 가이드라인에 맞게 더 잘 정렬하고 카드의 일관성을 유지하고 지도의 고정된 위치에 기본 라벨을 배치하고 라벨의 반응형 인셋을 추가합니다. 추가했습니다. (I60175)
  • 콘텐츠가 화면 가장자리를 벗어나지 않도록 이 레이아웃의 기본 라벨, 보조 라벨, 하단 칩에 반응형 인셋을 추가하는 PrimaryLayout.setResponsiveContentInsetEnabled를 추가했습니다. 추가했습니다. (I0c457)
  • 더 작은 구성요소로 사용할 수 있도록 CircularProgressIndicator에서 바깥쪽 여백을 삭제하는 메서드를 추가합니다. 추가했습니다. (I55c06)

API 변경사항

  • 이제 카드 렌더기가 모든 텍스트 요소의 글꼴 패딩을 포함하는 옵션 없이 기본적으로 글꼴 패딩을 제외합니다. 추가했습니다. (I3e300)

버그 수정

  • 텍스트에서 생략 부호, 문자 간격, 가운데 맞춤이 모두 사용될 때 발생하는 텍스트 정렬 문제가 해결되었습니다. 추가했습니다. (I716c7)
  • Skia Arc 그리기 문제의 해결 방법을 추가합니다. 추가했습니다. (I08f09)
  • RTL 레이아웃의 ArcLine 그리기 방향을 수정합니다. 추가했습니다. (I6c141)

버전 1.1

버전 1.1.0

2024년 2월 7일

androidx.wear.protolayout:protolayout-*:1.1.0이 출시되었습니다. 버전 1.1.0에 포함된 커밋을 확인하세요.

1.0.0 이후 중요 변경사항

  • 그라데이션을 지원하고 ArcLine에서 360도보다 큰 길이를 더 효과적으로 나타냅니다.
  • 날짜 시간 형식 지정은 동적 데이터 유형의 다른 시간대를 지원합니다.
  • 잘린 텍스트를 처리하도록 텍스트 자동 크기 조절 및 생략 부호 옵션 개선
  • 스페이서는 선택사항인 두께를 사용하여 펼친 크기를 지원합니다.
  • 모든 ProtoLayout API에 대한 스키마 버전 요구사항 주석입니다.
  • 접근성 요구사항을 충족하기 위해 대상 영역을 Clickable 요소로 48dp x 48dp로 확장했습니다.
  • 글꼴 패딩은 기본적으로 사용 중지되어 있으며 텍스트를 포함하는 모든 텍스트 요소와 Material 구성요소에서 적용되는 유일한 동작입니다.

추가 변경사항

  • 버전 1.1.0에 도입된 모든 변경사항을 보려면 beta01 출시 노트를 참고하세요.

버전 1.1.0-rc01

2024년 1월 24일

androidx.wear.protolayout:protolayout-*:1.1.0-rc01이 출시되었습니다. 버전 1.1.0-rc01에 포함된 커밋을 확인하세요.

버그 수정

  • 업데이트를 사용 설정한 직후 PlatformTimeUpdateNotifierImpl가 틱합니다. 추가했습니다. (I77145)
  • RTL 레이아웃의 CircularProgressIndicator을 수정했습니다. 지금부터는 모든 경우에 시계 방향으로 이동합니다. 추가했습니다. (I95ee3)
  • Skia Arc 그리기 문제의 해결 방법을 추가합니다. 추가했습니다. (I08f09)

버전 1.1.0-beta01

2024년 1월 10일

androidx.wear.protolayout:protolayout-*:1.1.0-beta01이 출시되었습니다. 버전 1.1.0-beta01에 포함된 커밋을 확인하세요.

새로운 기능

Wear ProtoLayout의 1.1.0-beta01 버전은 이 라이브러리 출시의 기능이 완전하고 API가 잠겨 있음을 나타냅니다 (시험용으로 표시된 경우는 제외). Wear ProtoLayout 1.1에는 다음과 같은 새로운 기능 및 API가 포함되어 있습니다.

  • 이제 ArcLineSweepGradient와 함께 Brush를 추가하고 캡에 그림자를 두어 기존 StrokeCapShadow를 추가하여 360도보다 큰 길이를 더 잘 나타내도록 하여 그라데이션을 지원합니다.
  • DynamicInstant에서는 구역 분할 날짜/시간 형식 지정을 지원합니다. DynamicInstantDynamicDuration는 상태 또는 플랫폼 데이터 유형으로 사용할 수 있습니다.
  • 여러 크기를 FontStyle.setSizes로 설정할 수 있는 텍스트 크기 자동 크기 조절 기능입니다. 이 경우 상위 요소 내부에 있는 공간에 따라 텍스트 크기가 자동으로 조정됩니다. 또한 TEXT_OVERFLOW_ELLIPSIZE를 추가하고 TEXT_OVERFLOW_ELLIPSIZE_END를 지원 중단하여 오버플로되는 텍스트의 생략 부호 옵션을 개선했습니다.
  • 이제 Spacer에서 선택사항인 두께를 사용하여 펼쳐진 크기를 사용할 수 있습니다. ExpandedDimensionProp를 빌드하기 위해 도우미 메서드 DimensionBuilders.weight를 추가했습니다.
  • Modifier.visible를 사용하여 레이아웃 요소를 동적으로 숨기고 숨기기 해제를 지원합니다. 여기에는 BoolProp에 동적 값을 보유하는 것도 포함됩니다.
  • 이제 모든 ProtoLayout API에 스키마 버전 요구사항 주석이 있으며 최신 API를 호출하기 전에 버전을 확인할 수 있습니다.
  • 이제 Clickable가 있는 모든 요소의 타겟 영역이 렌더기에서 최소 48x48로 확장되어 접근성 요구사항을 더 잘 지원합니다.
  • 다른 Material 구성요소 및 Compose 이니셔티브에 따라 이제 모든 Text 요소에서 글꼴 패딩을 기본적으로 사용 중지했습니다. 또한 AndroidTextStyle 및 관련 setter도 공개 API에서 삭제되었습니다. 다음 버그 수정:
  • EdgeContentLayout에서 가장자리 콘텐츠를 다른 콘텐츠 앞에 배치할 수 있도록 setter를 추가했습니다.
  • 인식할 수 없는 enum 값이 발생할 때 일관되게 예외가 발생합니다.
  • 잘못된 숫자 값 (NaN 또는 무한)이 발생하거나 ArithmeticException이 발생하는 경우 표현식의 결과를 무효화합니다.

API 변경사항

  • 생성자에서 색상이나 ColorStops를 허용할 수 있도록 SweepGradient API를 업데이트했습니다. 추가했습니다. (I6676f)

버그 수정

  • 호 요소가 그려지는 방향을 설정하기 위해 제한된 API 및 렌더기 지원을 추가합니다. 추가했습니다. (Idef5a)
  • 지정되지 않은 경우 RoundMode의 기본값은 FloatToInt32Node에서 Floor입니다. 제공된 RoundMode를 인식할 수 없는 경우 노드에서 여전히 예외가 발생합니다. 추가했습니다. (I1b2d8)

버전 1.1.0-alpha04

2023년 12월 13일

androidx.wear.protolayout:protolayout-*:1.1.0-alpha04이 출시되었습니다. 버전 1.1.0-alpha04에 포함된 커밋을 확인하세요.

새로운 기능

  • VersionInfo 클래스가 Comparable 인터페이스를 구현하지 않습니다. 추가했습니다. (I8d13c)
  • 이제 렌더기에서 TEXT_OVERFLOW_ELLIPSIZE 옵션을 지원합니다. 추가했습니다. (I7f085)

API 변경사항

  • 텍스트 오버플로 옵션 TEXT_OVERFLOW_ELLIPSIZE_END가 이제 지원 중단됩니다. 매우 유사한 동작의 새 API TEXT_OVERFLOW_ELLIPSIZE를 사용하세요. 추가했습니다. (I822d8)
  • 다른 Material 구성요소 및 Compose 이니셔티브에 따라 이제 모든 텍스트 요소에서 글꼴 패딩을 기본적으로 사용 중지했습니다. 또한 AndroidTextStyle 및 관련 setter도 공개 API에서 삭제되었습니다. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3)
  • Modifier.hiddenModifier.visible로 대체되었습니다. (I56902)
  • FontStyle#setSizes는 이제 SpProp 인수 대신 int를 허용합니다. 추가했습니다. (I02b37)

버그 수정

  • 정의되지 않았거나 인식할 수 없는 enum 값이 있으면 예외가 발생합니다. 추가했습니다. (I9d2cf)
  • DynamicTypeBindingRequest를 리팩터링합니다. 추가했습니다. (I27b57)
  • 잘못된 숫자 값 (NaN 또는 무한)이 발생하거나 ArithmeticException이 발생하는 경우 표현식의 결과를 무효화합니다. 추가했습니다. (I681ae)

버전 1.1.0-alpha03

2023년 11월 29일

androidx.wear.protolayout:protolayout-*:1.1.0-alpha03이 출시되었습니다. 버전 1.1.0-alpha03에 포함된 커밋을 확인하세요.

새로운 기능

  • 레이아웃 요소를 동적으로 숨기기/숨기기 해제를 위한 실험용 지원을 추가합니다. (I64a78)
  • BoolProp에 동적 값 지원을 추가합니다. (I2fe96)
  • ProtoLayout API에 스키마 버전 요구사항 주석을 추가했습니다. (I0f03c)
  • 최대 줄에 도달하지 않은 경우에도 (텍스트를 위한 공간이 충분하지 않은 경우) 고정된 상위 컨테이너의 Text를 생략하기 위해 TextOverflow의 새 옵션으로 API를 확장합니다. 추가했습니다. (I110a9)
  • 가중치가 있는 ExpandedDimensionProp를 빌드하기 위한 도우미 메서드 DimensionBuilders.weight를 추가했습니다. 추가했습니다. (I4f72b)
  • DynamicInstantDynamicDuration는 상태 또는 플랫폼 데이터 유형으로 사용할 수 있습니다. 추가했습니다. (I6819f)

API 변경사항

  • DynamicZonedDateTime를 숨기고 모든 작업을 DyanamicInstant로 이동하도록 API를 업데이트했습니다. (I34b94)
  • 이제 스페이서가 너비/높이에 대해 확장된 크기를 지원합니다. 추가했습니다. (Ie7c94)
  • 렌더기에서 클릭 대상 영역 확장 프로그램을 지원합니다. (I39c79)

버전 1.1.0-alpha02

2023년 11월 15일

androidx.wear.protolayout:protolayout-*:1.1.0-alpha02이 출시되었습니다. 버전 1.1.0-alpha02에 포함된 커밋을 확인하세요.

새로운 기능

  • API에 ArcLine StrokeCap Shadow 필드가 추가되었습니다. 추가했습니다. (I830ec)
  • 펼칠 스페이서의 너비 또는 높이를 지정할 수 있도록 API를 확장합니다. 추가했습니다. (I757ca)
  • 상위 요소 내부 공간에 따라 텍스트 크기를 자동으로 조정하는 실험용 API를 추가했습니다. 추가했습니다. (Ibbe63)
  • 클릭 가능한 최소 크기를 지원합니다. (I178e3)
  • StrokeCap Shadow의 렌더기 지원이 추가되었습니다. 추가했습니다. (I48b17)
  • ArcLine에 Sweep Gradient를 위한 렌더기 지원을 추가합니다. 추가했습니다. (I4d5bb)

버전 1.1.0-alpha01

2023년 10월 18일

androidx.wear.protolayout:protolayout-*:1.1.0-alpha01이 출시되었습니다. 버전 1.1.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

  • SweepGradient를 지원하는 브러시 옵션을 Arcline에 추가했습니다. 추가했습니다. (Ie7ce3)
  • 구역 분할 날짜-시간 형식 지정에 대한 지원을 추가했습니다. 추가했습니다. (Ibfae0)
  • 구역 분할 날짜/시간 형식 지정에 필요한 proto 및 Java 래퍼가 추가되었습니다. 추가했습니다. (I97126)
  • DynamicDataValue에 저장된 값을 다시 읽는 getter를 추가했습니다. 추가했습니다. (Ie6cea)
  • EdgeContentLayout에서 가장자리 콘텐츠를 다른 콘텐츠 앞에 배치할 수 있도록 setter를 추가했습니다. 추가했습니다. (Ie8e8a)

버그 수정

  • 여러 시간 데이터 소스 등록이 포함된 표현식이 즉시 업데이트되지 않는 문제가 해결되었습니다. 추가했습니다. (I8e1a8)
  • diff 업데이트 중에 루트 요소의 중앙에 배치되는 버그가 수정되었습니다. 추가했습니다. (Ie48f7)
  • 설정되지 않거나 비어 있는 레이아웃 제약 조건 값이 더 이상 무시되지 않습니다. 추가합니다. (Ibc785)
  • 레이아웃이 표시되는 시점과 파이프라인 노드가 초기화될 때까지의 지연을 줄였습니다. 추가했습니다. (I38d4e)

버전 1.0

버전 1.0.0

2023년 8월 9일

androidx.wear.protolayout:protolayout-*:1.0.0이 출시되었습니다. 버전 1.0.0에 포함된 커밋을 확인하세요.

1.0.0의 주요 기능

ProtoLayout 라이브러리에는 다양한 Wear OS 노출 영역에서 사용할 수 있는 레이아웃과 표현식을 만드는 API가 도입되었습니다. 예를 들어 카드 라이브러리는 이러한 API를 사용하여 플랫폼 데이터 결합 (더 빠른 카드 데이터 업데이트용) 및 애니메이션을 지원합니다.

버전 1.0.0-rc01

2023년 7월 26일

androidx.wear.protolayout:protolayout-*:1.0.0-rc01이 출시되었습니다. 버전 1.0.0-rc01에 포함된 커밋을 확인하세요.

  • Tiles에서 ProtoLayout로 이전하려면 여기에 나온 안내를 따르세요.

API 변경사항

  • Arc 요소에서 setLayoutConstraintForDynamicAnchorAnglegetLayoutConstraintForDynamicAnchorAngle 메서드를 삭제했습니다. 이러한 메서드는 실수로 추가되었으며 제공된 레이아웃에는 영향을 미치지 않았습니다. 추가했습니다. (If7d01)
  • ProtoLayout의 레이아웃이 중첩될 수 있는 최대 깊이를 30개의 중첩된 LayoutElements로 제한했습니다. 추가했습니다. (I8a74b)

버그 수정

  • SpanTextDynamicColor가 설정된 경우 발생하는 검사를 추가했습니다. 추가합니다. (I0e5bc)
  • DAILY_CALORIES 데이터 소스 단위가 kcal인 것으로 확인되었습니다. 추가했습니다. (Iaa785)

버전 1.0.0-beta01

2023년 6월 21일

androidx.wear.protolayout:protolayout-*:1.0.0-beta01이 출시되었습니다. 버전 1.0.0-beta01에 포함된 커밋을 확인하세요.

새로운 기능

  • 시간 결합 테스트용 시계 설정 허용 추가했습니다. (I05622)

API 변경사항

  • PlatformDataReceiver.onData()StateBuilders.Builder.addKeyToValueMapping은 이제 안전하지 않은 제네릭이 아닌 DynamicDataKey DynamicDataValue의 유형 안전 매핑을 허용합니다. 즉, 이제 DynamicDataValueDynamicType로 입력됩니다. HEART_RATE_ACCURACY_X 상수가 다른 Android 상수 위치와 일치하도록 PlatformHealthSources의 루트로 이동했습니다. 이제 HEART_RATE_ACCURACY_X int 상수가 값 상수 대신 DynamicHeartRateAccuracy.constant()DynamicHeartRateAccuracy.dynamicDataValueOf()에서 직접 사용됩니다. 추가했습니다. (I82ff5)
  • PlatformHealthSources.Constants 클래스를 실수로 인스턴스화할 수 있었습니다. 이 문제는 이제 해결되었습니다. 추가했습니다. (Icb849)
  • 이제 PlatformTimeUpdateNotifier#setReceiverSupplier 함수 대신 Runnable 및 알림을 받을 Executor를 수신합니다. 추가했습니다. (I9d938)
  • PlatformTimeUpdateNotifier#setReceiver의 매개변수 유형을 Callable에서 Supplier로 변경했습니다. 추가했습니다. (I664bf)
  • 이제 CompactChipTitleChip에서 아이콘을 추가할 수 있습니다. 추가했습니다. (I5a01e)

버그 수정

  • 대신 oneof를 사용하도록 동적 필드로 Prop 메시지를 업데이트합니다. (I81739)
  • setter가 있는 오버로드에 setter 구현을 재사용합니다. (Ied70c)
  • 오버로드가 있는 setter에 지문을 올바르게 기록합니다. (I86ed2)

버전 1.0.0-alpha11

2023년 6월 7일

androidx.wear.protolayout:protolayout-*:1.0.0-alpha11이 출시되었습니다. 버전 1.0.0-alpha11에 포함된 커밋을 확인하세요.

새로운 기능

  • 심박수 정확성을 위해 PlatformDataKey를 추가했습니다. 추가했습니다. (I7f9b8)

API 변경사항

  • StateBuilders#getIdToValueMapping의 이름을 getKeyToValueMapping로 바꾸고 반환 유형을 Map<<AppDataKey<?>,DynamicDataValue>로 변경합니다. 추가했습니다. (Iaa7ae)
  • StateStore를 최종 클래스로 만듭니다. (I408ca)
  • 시간 데이터 업데이트에 원하는 빈도를 제공하는 protolayout-expression-pipeline 라이브러리의 TimeGateway 인터페이스가 PlatformTimeUpdateNotifier로 대체되었습니다. 추가했습니다. (I60869)
  • PlatformDataProviderregister/unregisterForData 이름을 set/clearReceiver로 바꿨습니다. (I14b02)
  • Material Text에서 getExcludeFontPadding의 이름이 hasExcludeFontPadding로 변경되었습니다. 추가했습니다. (Iea01d)
  • 라벨을 완벽하게 정렬하기 위한 setter가 모든 칩 구성요소에 추가되었습니다. 이제 모든 칩에 최소 탭 가능 타겟이 적용되었습니다. 추가했습니다. (I8ae92)
  • LayoutDefaults#BUTTON_MAX_NUMBER에서 MAX_BUTTONS로 이름을 바꿨습니다. 추가했습니다. (I84788)
  • DAILY_DISTANCE에서 DAILY_DISTANCE_M로 이름이 변경되었습니다. 추가했습니다. (I4f758)

버그 수정

  • 정적 값이 적용되는 이유를 명확히 하기 위해 Prop 유형 문서를 업데이트합니다. 정적 값이 제공되지 않은 경우 사용할 기본값을 지정합니다. 추가했습니다. (I155aa)
  • PlatformDataKey 네임스페이스는 자바 스타일의 이름 지정을 따라야 합니다. 추가했습니다. (I47bda)

버전 1.0.0-alpha10

2023년 5월 24일

androidx.wear.protolayout:protolayout-*:1.0.0-alpha10이 출시되었습니다. 버전 1.0.0-alpha10에 포함된 커밋을 확인하세요.

새로운 기능

  • 앱 푸시 상태에 액세스하기 위한 AppDataKey를 추가합니다. 플랫폼 데이터에 액세스하기 위한 PlatformDataKey를 추가합니다. StateStore에 네임스페이스 지원을 추가합니다. 추가했습니다. (I7985e)
  • DynamicBoolEqualNotEqual 작업을 지원합니다. 추가했습니다. (I6a0c1)

API 변경사항

  • 이제 FontStyles 클래스가 최종 클래스입니다. (Iaa2ea)
  • LayoutElementBuilders#FontStyles가 지원 중단되었습니다. androidx.wear.protolayout.Typography을(를) 사용하거나 자체 FontStyle을(를) 만드세요. 추가했습니다. (Ic929b)
  • Action#Builder 중첩 인터페이스를 Action 인터페이스에서 숨깁니다. Builder 구현은 이미 LoadActionLaunchAction 클래스에서 제공되고 있습니다. 추가했습니다. (I1d70c)
  • FloatProp와 함께 DynamicFloat을(를) 사용하도록 허용합니다. FloatProp는 레이아웃 변경 속성으로 사용되지 않으므로 레이아웃 제약 조건이 필요하지 않습니다. 추가했습니다. (I286ac)
  • LoalActionSetStateAction 작업은 아직 실제로 지원되지 않으므로 삭제되었습니다. 추가했습니다. (I5d6a6)
  • 인라인 이미지 리소스에 ARGB_8888 형식 지원이 추가되었습니다. 추가했습니다. (I8a07c)
  • StateEntryValue의 이름을 DynamicDataValue로 바꾸고 DynamicDataKey를 사용하도록 상태 API를 업데이트합니다. (If1c01)
  • StateStore 인스턴스의 메모리 사용량 및 상태 업데이트 시간을 잘 제한하고 제어하기 위해 StateStore에서 허용되는 항목 수를 제한합니다. 따라서 개발자는 맵에 항목이 MAX_STATE_ENTRY_COUNT개를 넘지 않도록 해야 합니다. 그러지 않으면 StateStore를 만들거나 업데이트할 때 IllegalStateException이 발생합니다. 추가합니다. (Ibadb3)
  • OnLoadTriggerOnConditionMetTrigger 클래스를 숨기고 OnConditionMetTriggersetTrigger 이름을 setCondition로 바꿉니다. 추가합니다. (Ibf629)
  • 성능 및 호환성을 위해 ProtoLayout 렌더기는 AnimatedVectorDrawable 리소스의 전체 기능 집합을 지원하지 않습니다. 지원되는 세트를 정의할 수 있을 때까지 이러한 API를 실험용으로 표시합니다. 추가했습니다. (Ic6daf)
  • 일일 거리, 일일 칼로리, 일일 오른 층수에 대한 동적 유형을 추가했습니다. 이제 플랫폼 상태 소스의 키가 PlatformHealthSources.Keys 아래에 있습니다. (Ib7637)
  • Easing.cubicBezier 메서드는 CubicBezierEasing.Builder를 대체합니다. 이를 통해 EasingFunction 클래스가 삭제되고 이제 Easing 인터페이스에서 직접 이 클래스의 이징 상수에 액세스할 수 있습니다. 또한 setInfiniteRepeatableINFINITE_REPEATABLE_WITH_RESTARTINFINITE_REPEATABLE_WITH_REVERSE로 대체됩니다. (Ib41e7)
  • PlatformDataProvider를 구현하여 심박수와 일일 걸음 수를 제공합니다. SensorGateway 인터페이스가 공개 API에서 삭제되었습니다. 추가했습니다. (I55b84)
  • PlatformDataProvider를 추가하고 표현식 파이프라인의 노드에서 제공자 지원 키가 필요할 때 PlatformDataProvider에 등록하도록 StateStore를 업데이트합니다. 추가했습니다. (Ib616a)
  • SensorGateway는 더 이상 상태를 유지하지 않으므로 더 이상 Closeable가 아닙니다. 추가했습니다. (I6b4f7)
  • CircularProgressIndicator 진행에 DynamicFloat와 함께 FloatProp를 사용하도록 허용합니다. 이는 버전 1.2를 지원하는 렌더기에서 지원됩니다. 이전 렌더기는 staticValue로 대체됩니다(제공된 경우). 그렇지 않으면 0으로 대체됩니다. (I0d91b)
  • MultiButtonLayout 상수가 LayoutDefaults.MultiButtonLayoutDefaults 클래스로 리팩터링되어 이제 레이아웃의 버튼 수에 따라 버튼 크기 상수가 포함됩니다. 추가했습니다. (I13973)
  • Material Text에서 DynamicString와 함께 StringProp 사용을 지원합니다. 이는 버전 1.2를 지원하는 렌더기에서 지원됩니다. 이전 렌더기는 제공된 정적 값으로 대체합니다. Text#getText 반환 유형을 String에서 StringProp로 업데이트했습니다. 추가했습니다. (I7275b)

버전 1.0.0-alpha09

2023년 5월 10일

androidx.wear.protolayout:protolayout-*:1.0.0-alpha09이 출시되었습니다. 버전 1.0.0-alpha09에 포함된 커밋을 확인하세요.

새로운 기능

  • 실험용 확장 프로그램 레이아웃 요소를 추가했습니다. 이는 기본적으로 사용할 수 없으며 레이아웃 요소를 이해할 수 있는 렌더기 확장 프로그램이 필요합니다. 추가했습니다. (I6581d)
  • ArcLineStrokeCap 지원을 추가했습니다. 추가했습니다. (I94951)
  • 조건부 인스턴트 작업 지원을 추가했습니다. 추가했습니다. (I489a7)
  • 조건부 기간 작업에 대한 지원이 추가되었습니다. 추가했습니다. (Iab469)
  • 초에서 기간을 만들기 위한 지원이 추가되었습니다. 추가했습니다. (Ib5fa1)

API 변경사항

  • enable/disablePlatformSource 메서드가 DynamicTypeEvaluator에서 삭제되었습니다. 호출자가 업데이트를 담당해야 합니다. 추가했습니다. (I78c6d)
  • 결합된 데이터 유형의 크기 제한을 허용합니다. 추가했습니다. (Ie2966)
  • protolayout-material에 동적 콘텐츠 설명 지원을 추가합니다. 추가했습니다. (I62c8e)
  • AnimationParameters에서 지속 시간과 지연에 long 및 @IntRange를 사용합니다. 추가했습니다. (I388b6)

버전 1.0.0-alpha08

2023년 4월 19일

androidx.wear.protolayout:protolayout-*:1.0.0-alpha08이 출시되었습니다. 버전 1.0.0-alpha08에 포함된 커밋을 확인하세요.

새로운 기능

  • 연락처(AndroidTextStyle)가 LayoutElementBuilders 그룹에 추가되었습니다. 추가했습니다. (I8d967)
  • ProtoLayout Material Text에서 글꼴 패딩 제외 설정 지원을 추가했습니다. 추가했습니다. (I17f5d)
  • 이제 인라인 이미지에서 ARGB_8888이 지원됩니다. 추가했습니다. (I18c1e)
  • 이제 DynamicColoronCondition 작업을 지원합니다. 추가했습니다. (I10927)

API 변경사항

  • 역방향 애니메이션의 맞춤 재생 시간을 지원합니다. (I3251f)
  • SemanticDescription 수정자를 추가했습니다. 또한 ContentDescription는 바인딩할 수 없습니다. 추가했습니다. (I3f1d)
  • 이제 DynamicBool.isFalse() 메서드가 DynamicBool.negate()로 대체되고 DynamicBool.isTrue()가 삭제됩니다. 또한 NaN DynamicFloat 값과 DynamicInt32DynamicFloat로 좁히면 이제 잘못된 동적 결과가 내보내집니다. 추가했습니다. (I6ac1e)
  • 이제 Int 및 float 형식 지정 도구에서 빌더 패턴을 사용합니다. 추가했습니다. (Ieb213)

버그 수정

  • 애니메이션 가능 필드에서 대체 정적 값이 삭제되었습니다. 추가합니다. (Ifcb01)
  • DynamicTypeValueReceiver#onPreUpdate를 삭제했습니다. 추가했습니다. (I2dc35)
  • 이제 동적 표현식의 문자열 길이에 한도가 적용됩니다. 추가했습니다. (I4c93)
  • 이제 Gradle 종속 항목이 필요한 경우 implementation 대신 api로 올바르게 설정됩니다. 추가했습니다. (I40503)

버전 1.0.0-alpha07

2023년 4월 5일

androidx.wear.protolayout:protolayout-*:1.0.0-alpha07이 출시되었습니다. 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.

새로운 기능

  • StringProp에 동적 값 지원을 추가합니다. (I04342)
  • 결합 가능한 레이아웃 요소를 표시합니다. (Ia110b)

API 변경사항

  • sensorGateway#registerSensorGatewayConsumer는 소비자에서 메서드 대신 데이터 유형을 매개변수로 사용합니다. 추가했습니다. (Icf314)
  • ObservableStateStore에서 StateStore로 이름을 바꿨습니다. 추가했습니다. (Ieb0e2)
  • 더 많은 선택적 인수를 허용하도록 생성자 인수 대신 DynamicTypeEvaluator.Builder를 추가했습니다. 여기에는 이제 기본적으로 빈 스토어가 되는 ObservableStateStore가 포함됩니다. 추가했습니다. (I6f832)
  • DynamicTypeEvaluator의 매개변수 순서를 리팩터링했습니다. 추가했습니다. (Ic1ba4)

버그 수정

  • 플랫폼 센서 소스에서 다운스트림 노드로 신호를 올바르게 전파합니다. (I5a922)

버전 1.0.0-alpha06

2023년 3월 22일

androidx.wear.protolayout:protolayout-*:1.0.0-alpha06이 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.

새로운 기능

  • 동적 표현식에서 심박수와 일일 걸음 수를 사용하는 실험용 API를 추가했습니다. (Ifd711)
  • 애니메이션의 역방향 및 정방향 지연에 대한 지원을 추가했습니다. 추가했습니다. (Ic25f7)
  • 테두리 및 배경에 DynamicColor 지원을 추가했습니다.
  • DimensionBuilder의 유형에 동적 가치 지원을 추가했습니다.
  • tiles-material의 레이아웃과 구성요소가 protolayout-material로 이동됩니다.

API 변경사항

  • 연락처(LoadActionListener)가 ProtoLayoutViewInstance 그룹에 추가되었습니다. (If7806 참조)

버그 수정

  • FloatNodesTest를 추가했습니다. (Id7281)
  • 구조화된 비트맵을 로드할 수 없을 때 렌더기가 비정상 종료되는 문제를 수정했습니다.

버전 1.0.0-alpha05

2023년 3월 8일

androidx.wear.protolayout:protolayout-*:1.0.0-alpha05이 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.

새로운 기능

  • 실험용 '콘텐츠 업데이트'가 추가되었습니다. 애니메이션을 Modifiers 객체에 추가합니다. 레이아웃 업데이트 중에 요소 (이 수정자 사용) 또는 하위 요소 중 하나가 변경될 때마다 이 애니메이션이 트리거됩니다. 추가했습니다. (bd03e5d)

API 변경사항

  • forwardRepeatDelayMillisreverseRepeatDelayMillisRepeatable에 추가했습니다. 또한 AnimationSpecdelayMillis 이름을 startDelayMillis로 바꾸었습니다. (Ifb266)
  • DynamicTypeEvaluator.bind 메서드가 이제 Executor를 허용합니다. 추가했습니다. (I346ab)
  • 동적 유형이 바인딩된 후 평가를 트리거하도록 BoundDynamicTypestartEvaluation 메서드를 추가했습니다. 추가했습니다. (I19908)

버그 수정

  • Animator 객체는 단일 요소의 후속 애니메이션에 재사용됩니다. 추가했습니다. (Ia3be9)

버전 1.0.0-alpha04

2023년 2월 22일

androidx.wear.protolayout:protolayout-*:1.0.0-alpha04가 출시되었습니다. 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.

새로운 기능

  • 이제 ObservableStateStore도 키가 삭제될 때 이를 리스너에 알립니다.
  • 렌더기 스키마 버전과 글꼴 크기를 DeviceParameters에 추가했습니다. 이는 다양한 버전과 글꼴 설정에 따라 조건부로 레이아웃을 만드는 데 사용할 수 있습니다.
  • DynamicInt32 값에 애니메이션 적용 지원을 추가했습니다. (I05485)
  • OnLoadOnConditionalMet 트리거를 추가했습니다. 트리거를 지원하는 애니메이션을 시작하는 데 사용할 수 있습니다.
  • 펼친 크기의 레이아웃 가중치와 래핑된 크기의 최소 크기를 추가했습니다.
  • 재생 시간 및 인스턴트 동적 유형을 추가했습니다. 동적 표현식에서 시간 또는 기간을 나타내는 데 사용할 수 있습니다.
  • AnimatedVectorDrawableSeekableAnimatedVectorDrawable 지원을 레이아웃 리소스로 추가했습니다.

API 변경사항

  • 센서 데이터는 API 29 이상이 필요합니다. 추가했습니다. (I8099e)
  • 활동을 실행하기 위한 launchAction 도우미 메서드 두 개를 추가했습니다.

버그 수정

  • 카드 애니메이션에서 set/getSpec의 이름을 set/getAnimationSpec로 바꿉니다. (I3d74b)

버전 1.0.0-alpha03

2023년 2월 8일

androidx.wear.protolayout:protolayout-*:1.0.0-alpha03이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.

새로운 기능

  • protolayout-express 라이브러리의 동적 유형에 toByteArray()fromByteArray()를 추가했습니다.
  • protolayout-expression 라이브러리의 동적 유형에 toString()을 추가했습니다.
  • 동적 유형에 관한 평가 지원을 추가했습니다. protolayout-expression-pipeline 라이브러리의 DynamicTypeEvaluator 클래스는 이전에 만든 동적 유형(DynamicString, DynamicFloat 등)을 평가하고 업데이트된 값을 수신하는 데 사용할 수 있습니다.
  • 애니메이션을 재생할 수 없는 경우(평가자에 의해 사용 중지되었거나 실행 중인 애니메이션의 수가 설정 한도에 도달하여) 애니메이션 가능한 노드에 설정된 정적 값이 애니메이션을 대체하도록 사용됩니다.

버전 1.0.0-alpha02

2023년 1월 25일

androidx.wear.protolayout:protolayout:1.0.0-alpha02, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02, androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02가 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.

새로운 기능

  • androidx.wear.tiles:tiles의 레이아웃 빌더가 androidx.wear.protolayout:protolayout으로 이동되었습니다. androidx.wear.tiles:tiles의 레이아웃 빌더는 다음번 알파 출시 버전 중 하나에서 지원 중단될 예정입니다.

버전 1.0.0-alpha01

2023년 1월 11일

androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01, androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

  • 이 출시에서는 동적 변수에서 표현식을 만드는 새로운 라이브러리 'ProtoLayout Expression'을 도입했습니다.