wear protolayout
Atualização mais recente | Versão estável | Versão candidata a lançamento | Versão Beta | Versão Alfa |
---|---|---|---|---|
15 de janeiro de 2025 | 1.2.1 | - | - | 1.3.0-alpha06 |
Declarar dependências
Para adicionar uma dependência à biblioteca wear-protolayout, adicione o repositório Maven do Google ao seu projeto. Consulte a seção Repositório Maven do Google para mais informações.
Adicione as dependências dos artefatos necessários ao arquivo build.gradle
do
seu app ou módulo:
Groovy
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation "androidx.wear.protolayout:protolayout-expression:1.3.0-alpha04" // Use to implement support for Wear ProtoLayout implementation "androidx.wear.protolayout:protolayout:1.3.0-alpha04" // Use to utilize components and layouts with Material design in your ProtoLayout implementation "androidx.wear.protolayout:protolayout-material:1.3.0-alpha04" }
Kotlin
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation("androidx.wear.protolayout:protolayout-expression:1.3.0-alpha04") // Use to implement support for Wear ProtoLayout implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha04") // Use to utilize components and layouts with Material design in your ProtoLayout implementation("androidx.wear.protolayout:protolayout-material:1.3.0-alpha04") }
Para mais informações sobre dependências, consulte Adicionar dependências de build.
Feedback
Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.
Consulte a documentação do Issue Tracker para saber mais.
Versão 1.3
Versão 1.3.0-alpha06
15 de janeiro de 2025
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha06
. A versão 1.3.0-alpha06 contém estas confirmações.
Novos recursos
LayoutColor
foi atualizado para oferecer suporte a tipos de cores estáticas e dinâmicas (I4c89b).- Adição do componente
ProtoLayout Material3
textButton. (Id680d). - Adição do componente
iconButton
ProtoLayout Material3. (Ica3f0). - Adição do componente de contêiner de botões do ProtoLayout Material3. (I17a38).
- Foi adicionado suporte a modificadores semânticos encadeáveis ao protolayout-material3 (I4af62).
- O ProtoLayout Material3
CircularProgressIndicator
de segmento único foi adicionado (I2c8a2). - Adição dos modificadores
padding
emetadata
(I8720a). - Foram adicionados os modificadores
background
,clip
eclickable
(I35478). - Adicione
LinearGradient
ao pincel e permita que ele seja usado no modificador de plano de fundo. (Ic4dea). - Adicionamos o tamanho pequeno para appCard e
titleCard
. (I91f98). - Adição do componente
graphicDataCard
do ProtoLayout do Material3. (I92be7). - Adição dos componentes
iconDataCard
etextDataCard
do ProtoLayout do Material3. (I4e1e4). - Adição do componente
appCard
do ProtoLayout do Material3. (Id4c57). - Abstraia
EdgeButtonColors
paraButtonColors
. (I83624). - Adição do componente
titleCard
do ProtoLayout do Material 3. (I2dc72).
Mudanças na API
- A API ProtoLayout Material3 agora aceita
LayoutString
para oferecer suporte a textos estáticos e dinâmicos. (I9c24a).
Correções de bugs
- Adição de implementação de renderizador para inflar
DashedArcLine
(I0c700). - Mudança no renderizador para permitir que
ArcSpacer
use o comprimento de dp. (I1437b).
Versão 1.3.0-alpha05
11 de dezembro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha05
. A versão 1.3.0-alpha05 contém estas confirmações.
Novos recursos
- Adição de
LayoutString
para oferecer suporte a campos de string de layout vinculáveis. (Ida650). - Adição do componente de contêiner de cartão
ProtoLayout Material3
. (Ic985a).
Correções de bugs
- Essa biblioteca agora usa anotações de nulidade JSpecify, que são de uso de tipo. Os desenvolvedores Kotlin precisam usar os seguintes argumentos do compilador para aplicar o uso correto:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
(Id1f9b, b/326456246).
Versão 1.3.0-alpha04
13 de novembro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha04
. A versão 1.3.0-alpha04 contém estas confirmações.
Novos recursos
- A forma do Material3 foi atualizada para ser uma classe com campos que contêm o valor real do canto, assim como no Wear Compose. (Ied8cd).
- As cores do Material3 foram atualizadas para incluir o conceito
ColorScheme
, assim como no Wear Compose. (If645e). - Adicionamos vários comparadores usados com frequência à biblioteca de testes. (Ie5cec).
Versão 1.3.0-alpha03
30 de outubro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha03
. A versão 1.3.0-alpha03 contém estas confirmações.
Novos recursos
- Adição de
LayoutElementAssertionsProvider
,LayoutElementAssertion
eLayoutElementMatcher
à biblioteca de testes (Id1110).
Versão 1.3.0-alpha02
16 de outubro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha02
. A versão 1.3.0-alpha02 contém estas confirmações.
Novos recursos
- Versão inicial da biblioteca Material 3. Inclui os componentes
text
,edgeButton
,buttonGroup
eprimaryLayout
.
Correções de segurança
- A partir dessa mudança, o androidx é compilado com o protobuf 4.28.2 para resolver o CVE-2024-7254. Faça upgrade da dependência da versão 1.3.0-alpha01 de
androidx.wear.protolayout:protolayout-proto
eandroidx.wear.protolayout:protolayout-external-protobuf
para a versão 1.3.0-alpha02 para resolver o risco de vulnerabilidade.
Contribuição externa
Versão 1.3.0-alpha01
2 de outubro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha01
. A versão 1.3.0-alpha01 contém estas confirmações.
Correções de bugs
- Foi esclarecido que a disponibilidade dos nomes das famílias de fontes Roboto e Roboto Flex depende do dispositivo. (I193be).
- A família de fontes Roboto Flex foi ativada no renderizador de blocos do AndroidX. (I08e94).
Versão 1.2
Versão 1.2.1
16 de outubro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.1
. A versão 1.2.1 contém estas confirmações.
Correções de segurança
- A partir dessa mudança, o androidx é compilado com o protobuf 4.28.2 para resolver o CVE-2024-7254. Faça upgrade da dependência na versão 1.2.0 de
androidx.wear.protolayout:protolayout-proto
eandroidx.wear.protolayout:protolayout-external-protobuf
para 1.2.1 para resolver o risco de vulnerabilidade.
Versão 1.2.0
7 de agosto de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0
. A versão 1.2.0 contém estas confirmações.
Mudanças importantes desde a 1.1.0
- O
FontStyle
foi atualizado para ter mais suporte a fontes para eixos variáveis e uma API de seleção de fontes melhor para oferecer suporte às próximas fontes Flex. - Compatibilidade com outros modificadores:
- Modificador de transformação que oferece translação, rotação e escalonamento com ou sem animações.
- Especifique valores diferentes (horizontal e vertical) para cada raio de canto.
- Melhoria na acessibilidade de todos os alvos de toque com a extensão da área de toque de qualquer elemento que use o modificador clicável para ser pelo menos
48dp
por48dp
. - Melhorias em
PrimaryLayout
eEdgeContentLayout
com a adição desetResponsiveContentInsetEnabled
para oferecer melhor suporte ao comportamento responsivo desses layouts em diferentes tamanhos de tela e melhorar a consistência dos blocos. - Melhoria na escala/não escala do Material Text para o dimensionamento de fontes não linear do Android 14.
- Melhoria no suporte à direção do layout RTL em todos os elementos de arco.
Outras mudanças
- Para conferir um conjunto mais completo das mudanças introduzidas na versão 1.1.0, consulte as notas da versão beta01.
Versão 1.2.0-rc01
24 de julho de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-rc01
. A versão 1.2.0-rc01 contém estas confirmações.
Correções de bugs
- Corrigimos o ícone padrão do Material Design para que ele possa ser usado como um ícone somente se nenhum dos rótulos primário ou secundário for transmitido. (Iceef9).
- A documentação sobre layouts do Material Design foi atualizada para incluir imagens da página relevante para facilitar a compreensão dos layouts. (I0256a).
Versão 1.2.0-beta01
10 de julho de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-beta01
. A versão 1.2.0-beta01 contém estas confirmações.
Novos recursos
A versão 1.2.0-beta01 do Wear ProtoLayout indica que esta versão da biblioteca tem todos os recursos e a API está bloqueada (exceto quando marcada como experimental). O Wear ProtoLayout 1.2 inclui as seguintes novas APIs e funcionalidades:
- O
FontStyle
foi atualizado para ter mais suporte a fontes da seguinte forma:- Definir diferentes configurações de variação de fonte, como
FontSetting.weight
eFontSetting.width
- Definir a mesma largura para todos os caracteres numéricos: algarismos tabulares (definição de recurso de fonte
FontSetting.tnum
) - Melhorias nas APIs de seleção de fontes para oferecer suporte às próximas fontes flex, especificando os nomes das famílias de fontes preferidas a serem usadas.
- Definir diferentes configurações de variação de fonte, como
- O modificador
Corner
foi estendido para oferecer suporte à especificação de cadaCornerRadius
com valores horizontais e verticais separados, permitindo a criação de elementos com cantos assimétricos. - Foi adicionado um novo modificador
Transformation
que oferece translação, rotação e dimensionamento deLayoutElement
. Essas transformações podem ser animadas usando valores dinâmicos. - Foram adicionadas as opções
setArcDirection
comClockwise
,CounterClockwise
eNormal
a todos os elementos de arco (Arc
,ArcLine
eArcText
) para melhor suporte em diferentes direções de layout (como LTR e RTL). - Melhoria na acessibilidade de todas as áreas de toque com a extensão da área de toque de qualquer elemento que usa o modificador
Clickable
para ser pelo menos48dp
por48dp
. - Melhorias em
PrimaryLayout
eEdgeContentLayout
com a adição desetResponsiveContentInsetEnabled
para oferecer melhor suporte ao comportamento responsivo desses layouts em diferentes tamanhos de tela e melhorar a consistência dos blocos. Adição de um aviso de lint para sugerir o uso dessas APIs com uma correção rápida. - Melhoria na escala/não escala do Material
Text
para o dimensionamento de fontes não linear do Android 14.
Mudanças na API
- O nome da família de fontes padrão (
DEFAULT_SYSTEM_FONT
) é removido, porque é implícito não usar a APIpreferredFontFamilies
. (I39dab). - O parâmetro transmitido para
FontSetting.width
precisa ser positivo. (I1266f).
Versão 1.2.0-alpha05
26 de junho de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha05
. A versão 1.2.0-alpha05 contém estas confirmações.
Novos recursos
- O método
hasText
foi adicionado aMaterial.CompactChip
para verificar se o conteúdo de texto foi definido. (I6e8fc).
Mudanças na API
- O const
FontFamily
foi movido paraFontStyle
em vez da classe Builder (I06ced). - A API
FontSetting.weight
eFontSetting.width
foram atualizadas para incluir anotações de intervalo e mudar o parâmetro de peso para int. (Ia726c).
Correções de bugs
- Textos não dimensionáveis na biblioteca do Material Design agora funcionam corretamente com o dimensionamento de fontes não linear do Android 14. (I6601e).
Versão 1.2.0-alpha04
29 de maio de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha04
. A versão 1.2.0-alpha04 contém estas confirmações.
Mudanças na API
- A API de cantos assimétricos foi adicionada para especificar separadamente o raio de cada canto com dois valores. (Icbd69).
- A API
FontSetting
foi ampliada para incluir: - A API de família de fontes foi adicionada a
FontStyle
para permitir a especificação de uma lista de ordenação de quais famílias de fontes devem ser usadas. (Iba9f5). - As constantes foram renomeadas para a altura do espaço entre o conteúdo e o rótulo secundário no
LayoutDefaults
do Material Design que foram prefixados inicialmente com "Conteúdo de borda" para serem mais genéricos, já que podem ser aplicadas aPrimaryLayout
eEdgeContentLayout
. (I4dc32).
Correções de bugs
- O nome dos eixos de fontes variáveis foi renomeado de
axisName
paraaxisTag
. (I02ba3).
Versão 1.2.0-alpha03
14 de maio de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha03
. A versão 1.2.0-alpha03 contém estas confirmações.
Novos recursos
- Adição da API para definir valores de peso personalizados para
FontStyle
. (I7390a).
Correções de bugs
- Correção da falha em
getTouchDelegateInfo
devido ao mapa de destino vazio. (I2accf).
Versão 1.2.0-alpha02
1º de maio de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha02
. A versão 1.2.0-alpha02 contém estas confirmações.
Mudanças na API
- Adicionamos suporte para desativar o feedback de ondulação em elementos individuais que podem ser clicados. (If1ede).
- A API para transformação foi removida de
ArcModifiers
porque não oferece suporte a esse recurso (Ic0827). - O builder
ArcDirectionProp
agora espera um valor no construtor. (I76ada). - O método
PlatformDataValues.Builder.putAll
permite mesclar umPlatformDataValue
a outro. (I50ba3). Text#setIsScalable
foi renomeado comoText#setScalable
. (If920e).- O Material Text pode definir se vai usar o tamanho escalonável (que aumenta quando o tamanho da fonte do usuário é alterado) ou não. (Ibc849).
- Adicionamos a opção de definir a descrição do conteúdo como
TitleChip
. (I5d21f). - Correção de
CompactChip
para funcionar corretamente apenas com o ícone e atualização da API para permitir essa opção. (I6589e).
Correções de bugs
- Correção de um problema de dados de plataforma duplicados durante a inicialização. (Iba0fd).
- Um novo getter foi introduzido em
DynamicDataNode
para recuperar o custo do nó. O custo é usado ao adquirir a cota de nó dinâmico. Atualmente, os nós com valores fixos têm um custo de 0, e todos os outros têm um custo de 1. (Ia33e1). - Removemos a lógica de contagem do
NO_OP_QUOTA_MANAGER
. (Ib50b8). - Adicionamos uma regra de lint para informar um aviso quando
PrimaryLayout
é usado semsetResponsiveContentInsetEnabled
e fornecer uma correção rápida. (I12025). - Há um limite para o número de nós de expressão dinâmica. (Iffae8).
Versão 1.2.0-alpha01
6 de março de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha01
. A versão 1.2.0-alpha01 contém estas confirmações.
Novos recursos
- Os elementos
ProtoLayout Arc
agora têm a opção de adicionarArcDirection
(Clockwise
,Counterclockwise
ouNormal
). Adicionar esse comportamento aArc
,ArcLine
ouArcText
vai corrigir o comportamento deles em layouts RTL. (I90699). - O
EdgeContentLayout
foi atualizado com um novo settersetResponsiveContentInsetEnabled
para alcançar um melhor alinhamento com as diretrizes de UX, consistência nos blocos com o rótulo principal no lugar fixo na parte de cima e um encarte responsivo para rótulos. (I60175). - Adicionamos
PrimaryLayout.setResponsiveContentInsetEnabled
, que adiciona um inseto responsivo ao rótulo principal, ao rótulo secundário e ao ícone de baixo neste layout, para evitar que o conteúdo saia da borda da tela. (I0c457). - Adiciona um método para remover as margens externas de
CircularProgressIndicator
para que ele possa ser usado como um componente menor. (I55c06).
Mudanças na API
- O renderizador de blocos agora exclui o padding da fonte em todos os elementos de texto por padrão, sem uma opção para incluí-lo. (I3e300).
Correções de bugs
- Corrigimos o problema de alinhamento de texto quando a elipse, o espaçamento entre letras e o alinhamento central são usados no texto. (I716c7).
- Adição de uma solução alternativa para um problema de desenho de arco de skia. (I08f09).
- Correção da direção de desenho
ArcLine
para layouts RTL. (I6c141).
Versão 1.1
Versão 1.1.0
7 de fevereiro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0
. A versão 1.1.0 contém estas confirmações.
Mudanças importantes desde a versão 1.0.0
- Suporte a gradientes e melhor representação de comprimentos maiores que 360 graus em
ArcLine
. - A formatação de data e hora oferece suporte a diferentes fusos horários para tipos de dados dinâmicos.
- Melhores opções de autodimensionamento e elipse de texto para processar texto truncado.
- O espaçador oferece suporte a dimensões expandidas com peso opcional.
- A anotação de requisito de versão do esquema para todas as APIs
ProtoLayout
. - A área de destino foi estendida para qualquer elemento
Clickable
de 48 dp x 48 dp, para atender aos requisitos de acessibilidade. - O padding da fonte é desativado por padrão e é o único comportamento em todos os elementos de texto e componentes do Material Design que contêm texto.
Outras mudanças
- Para conferir um conjunto mais completo das mudanças introduzidas na versão 1.1.0, consulte as notas da versão beta01.
Versão 1.1.0-rc01
24 de janeiro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0-rc01
. A versão 1.1.0-rc01 contém estas confirmações.
Correções de bugs
PlatformTimeUpdateNotifierImpl
é marcado imediatamente após ativar a atualização. (I77145).CircularProgressIndicator
foi corrigido para layouts RTL. A partir de agora, ele vai girar no sentido horário em todos os casos. (I95ee3).- Adição de uma solução alternativa para um problema de desenho de arco de skia. (I08f09).
Versão 1.1.0-beta01
10 de janeiro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0-beta01
. A versão 1.1.0-beta01 contém estas confirmações.
Novos recursos
A versão 1.1.0-beta01 do Wear ProtoLayout indica que essa versão da biblioteca tem todos os recursos e a API está bloqueada (exceto quando marcada como experimental). O Wear ProtoLayout 1.1 inclui as seguintes novas APIs e funcionalidades:
- Agora,
ArcLine
oferece suporte a gradientes, adicionandoBrush
comSweepGradient
e uma sombra no limite para representar melhor o comprimento maior que 360 graus, adicionandoShadow
aoStrokeCap
. DynamicInstant
tem suporte para formatação de data e hora com fuso horário.DynamicInstant
eDynamicDuration
podem ser usados como tipos de dados de estado ou plataforma.- Recurso de dimensionamento automático para tamanho de texto que permite definir vários tamanhos para
FontStyle.setSizes
, em que o tamanho do texto é dimensionado automaticamente com base no espaço que ele tem dentro do elemento pai. Além disso, melhoramos as opções de omissão de texto que transborda, adicionandoTEXT_OVERFLOW_ELLIPSIZE
e descontinuandoTEXT_OVERFLOW_ELLIPSIZE_END
. - Agora, o
Spacer
oferece suporte a dimensões expandidas com peso opcional. Para criarExpandedDimensionProp
, adicionamos um método auxiliarDimensionBuilders.weight
. - Suporte para ocultar e mostrar elementos de layout dinamicamente com
Modifier.visible
. Isso inclui ter valores dinâmicos emBoolProp
. - Todas as APIs
ProtoLayout
agora têm a anotação de requisito de versão do esquema, e a versão pode ser verificada antes de chamar uma API mais recente. - Agora, todos os elementos que têm
Clickable
têm a área de destino estendida para pelo menos 48x48 no renderizador para oferecer suporte aos requisitos de acessibilidade. - Seguindo outras iniciativas de componentes do Material Design e do Compose, desativamos o padding da fonte por padrão em todos os elementos
Text
. Além disso,AndroidTextStyle
e setters relacionados foram removidos da API pública com as seguintes correções de bugs: - Foi adicionado um setter para posicionar o conteúdo de borda em
EdgeContentLayout
para que ele possa ser posicionado antes de outros conteúdos. - Geração consistente de uma exceção ao encontrar um valor de tipo enumerado não reconhecido.
- Invalida o resultado de uma expressão quando ela gera um valor numérico inválido (NaN ou infinito) ou gera uma
ArithmeticException
.
Mudanças na API
- Atualizações na API
SweepGradient
para permitir a aceitação de cores ouColorStops
no construtor. (I6676f).
Correções de bugs
- Adição de uma API restrita e suporte ao renderizador para definir uma direção em que os elementos de arco são desenhados. (Idef5a).
RoundMode
assume o valorFloor
emFloatToInt32Node
quando não especificado. O nó ainda vai gerar uma exceção se oRoundMode
fornecido não for reconhecido. (I1b2d8).
Versão 1.1.0-alpha04
13 de dezembro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha04
. A versão 1.1.0-alpha04 contém estas confirmações.
Novos recursos
- A classe
VersionInfo
não implementa a interfaceComparable
. (I8d13c). - O renderizador agora oferece suporte à opção
TEXT_OVERFLOW_ELLIPSIZE
. (I7f085).
Mudanças na API
- A opção de transbordamento de texto
TEXT_OVERFLOW_ELLIPSIZE_END
foi descontinuada. Use a nova APITEXT_OVERFLOW_ELLIPSIZE
com um comportamento muito semelhante. (I822d8). - Seguindo outras iniciativas do Compose e dos componentes do Material Design, desativamos o padding de fonte por padrão em todos os elementos de texto. Além disso,
AndroidTextStyle
e setters relacionados foram removidos da API pública. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3). Modifier.hidden
foi substituído porModifier.visible
(I56902).FontStyle#setSizes
agora aceita int em vez de argumentosSpProp
. (I02b37).
Correções de bugs
- Gera uma exceção ao encontrar um valor de tipo enumerado indefinido ou não reconhecido. (I9d2cf).
- Refatore
DynamicTypeBindingRequest
. (I27b57). - Invalida o resultado de uma expressão quando ela gera um valor numérico inválido (NaN ou infinito) ou gera uma
ArithmeticException
. (I681ae).
Versão 1.1.0-alpha03
29 de novembro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha03
. A versão 1.1.0-alpha03 contém estas confirmações.
Novos recursos
- Foi adicionado suporte experimental para ocultar/mostrar elementos de layout de forma dinâmica (I64a78).
- Foi adicionado suporte a valores dinâmicos a
BoolProp
(I2fe96). - Adição de anotação de requisito de versão do esquema às APIs
ProtoLayout
(I0f03c). - A API foi ampliada com a nova opção em
TextOverflow
para elipse do texto em um contêiner pai fixo, mesmo quando o número máximo de linhas não é alcançado (mas não há espaço suficiente para o texto). (I110a9). - Foi adicionado o método auxiliar
DimensionBuilders.weight
para criarExpandedDimensionProp
com peso. (I4f72b). DynamicInstant
eDynamicDuration
podem ser usados como tipos de dados de estado ou plataforma. (I6819f).
Mudanças na API
- A API foi atualizada para ocultar
DynamicZonedDateTime
e mover todas as operações dela paraDyanamicInstant
(I34b94). - O espaçador agora oferece suporte à dimensão expandida para largura/altura. (Ie7c94).
- Suporte à extensão da área de destino do clique no renderizador (I39c79).
Versão 1.1.0-alpha02
15 de novembro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha02
. A versão 1.1.0-alpha02 contém estas confirmações.
Novos recursos
- Um campo
Shadow
StrokeCap
ArcLine
foi adicionado à API. (I830ec). - A API foi ampliada para poder especificar a largura ou a altura do Spacer para expansão. (I757ca).
- Adicionamos uma API experimental para dimensionar automaticamente o tamanho do texto com base no espaço que ele tem no elemento pai. (Ibbe63).
- Suporte ao tamanho mínimo clicável (I178e3).
- Adição de suporte ao renderizador para
StrokeCap
Shadow
. (I48b17). - Adição de suporte ao renderizador para o gradiente em varredura em
ArcLine
. (I4d5bb).
Versão 1.1.0-alpha01
18 de outubro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha01
. A versão 1.1.0-alpha01 contém estas confirmações.
Novos recursos
- Uma opção de pincel foi adicionada a
Arcline
, com suporte paraSweepGradient
. (Ie7ce3). - Adição de suporte à formatação de data e hora com fuso horário. (Ibfae0).
- Foram adicionados protos e wrappers Java necessários para a formatação de data/hora com fuso horário. (I97126).
- Foram adicionados getters para ler o valor armazenado em um
DynamicDataValue
. (Ie6cea). - Foi adicionado um setter para posicionar o conteúdo de borda em
EdgeContentLayout
para que ele possa ser posicionado antes de outros conteúdos. (Ie8e8a).
Correções de bugs
- Corrigimos um problema em que uma expressão com vários registros de origem de dados de tempo não era atualizada imediatamente. (I8e1a8).
- Correção de um bug para centralizar o elemento raiz durante atualizações de diferença. (Ie48f7).
- Os valores de restrição de layout não definidos (ou vazios) não serão mais ignorados. (Ibc785).
- O atraso entre o momento em que um layout fica visível e o momento em que os nós do pipeline são inicializados foi reduzido. (I38d4e).
Versão 1.0
Versão 1.0.0
9 de agosto de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0
. A versão 1.0.0 contém estas confirmações.
Principais recursos da versão 1.0.0
A biblioteca ProtoLayout apresenta APIs para criar layouts e expressões que podem ser usadas em diferentes plataformas do Wear OS. Por exemplo, a biblioteca Tiles usa essas APIs para oferecer suporte a vinculações de dados da plataforma (para atualizações mais rápidas de dados de blocos) e animações.
Versão 1.0.0-rc01
26 de julho de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-rc01
. A versão 1.1.0-rc01 contém estas confirmações.
- Para migrar de Blocos para
ProtoLayout
, siga estas instruções.
Mudanças na API
- Removemos os métodos
setLayoutConstraintForDynamicAnchorAngle
egetLayoutConstraintForDynamicAnchorAngle
do elemento Arc. Esses métodos foram adicionados por engano e não tiveram nenhum efeito no layout fornecido. (If7d01). - Limitamos a profundidade máxima que um layout de
ProtoLayout
pode ter a 30LayoutElements
aninhados. (I8a74b).
Correções de bugs
- Adicionamos uma verificação para gerar uma exceção se o
DynamicColor
tiver sido definido para umSpanText
. (I0e5bc). - A unidade da fonte de dados
DAILY_CALORIES
é kcal. (Iaa785).
Versão 1.0.0-beta01
21 de junho de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-beta01
. A versão 1.0.0-beta01 contém estas confirmações.
Novos recursos
- Permite definir o relógio para testes de vinculação de tempo. (I05622).
Mudanças na API
PlatformDataReceiver.onData()
eStateBuilders.Builder.addKeyToValueMapping
agora aceitam mapeamento seguro de tipo deDynamicDataKey
paraDynamicDataValue
em vez de genéricos não seguros. Isso significa queDynamicDataValue
agora é digitado com oDynamicType
. As constantesHEART_RATE_ACCURACY_X
foram movidas para a raiz dePlatformHealthSources
para corresponder a outras posições de constantes do Android. As constantes intHEART_RATE_ACCURACY_X
agora são usadas diretamente emDynamicHeartRateAccuracy.constant()
eDynamicHeartRateAccuracy.dynamicDataValueOf()
em vez da constante de valor. (I82ff5).- A classe
PlatformHealthSources.Constants
foi instanciada por engano. Isso já foi corrigido. (Icb849). PlatformTimeUpdateNotifier#setReceiver
agora recebeRunnable
em vez da funçãoSupplier
eExecutor
para notificar (I9d938).- Mudamos o tipo de parâmetro em
PlatformTimeUpdateNotifier#setReceiver
deCallable
paraSupplier
. (I664bf). CompactChip
eTitleChip
agora oferecem suporte à adição de um ícone. (I5a01e).
Correções de bugs
- Atualização das mensagens de propriedade com campos dinâmicos para usar o oneof (I81739).
- Reutilização da implementação de setters para sobrecargas que têm setters (Ied70c).
- Registro adequado de impressões digitais em setters com sobrecargas (I86ed2).
Versão 1.0.0-alpha11
7 de junho de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha11
. A versão 1.0.0-alpha11 contém estas confirmações.
Novos recursos
- Adicionamos um
PlatformDataKey
para a precisão da frequência cardíaca (I7f9b8).
Mudanças na API
- Renomeie
StateBuilders#getIdToValueMapping
paragetKeyToValueMapping
e mude o tipo de retorno paraMap<<AppDataKey<?>,DynamicDataValue>
. (Iaa7ae). StateStore
agora é uma classe final (I408ca).- A interface
TimeGateway
foi substituída porPlatformTimeUpdateNotifier
na bibliotecaprotolayout-expression-pipeline
, que fornece a frequência desejada para atualizar dados de tempo. (I60869). - Renomeação de
register
/unregisterForData
emPlatformDataProvider
paraset
/clearReceiver
(I14b02). - No Material Text,
getExcludeFontPadding
foi renomeado comohasExcludeFontPadding
. (Iea01d). - O seletor para alinhar perfeitamente o rótulo foi adicionado a todos os componentes de chip. Todos os ícones agora têm um destino mínimo de toque aplicado. (I8ae92).
LayoutDefaults#BUTTON_MAX_NUMBER
foi renomeado comoMAX_BUTTONS
(I84788).DAILY_DISTANCE
foi renomeado comoDAILY_DISTANCE_M
. (I4f758).
Correções de bugs
- Atualizamos os documentos de tipos de propriedades para esclarecer por que o valor estático é aplicado. Especifica o valor padrão usado se o valor estático não for fornecido. (I155aa).
- Os namespaces
PlatformDataKey
precisam seguir a nomenclatura do estilo Java. (I47bda).
Versão 1.0.0-alpha10
24 de maio de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha10
. A versão 1.0.0-alpha10 contém estas confirmações.
Novos recursos
- Foi adicionado
AppDataKey
para acessar o estado de envio do app. Foi adicionadoPlatformDataKey
para acessar dados da plataforma. Foi adicionado suporte a namespaces emStateStore
. (I7985e). - Suporte a operações
Equal
eNotEqual
paraDynamicBool
. (I6a0c1).
Mudanças na API
- A classe
FontStyles
agora é final (Iaa2ea). - O uso de
LayoutElementBuilders#FontStyles
foi descontinuado Useandroidx.wear.protolayout.Typography
ou crie sua própriaFontStyle
. (Ic929b). - Ocultar a interface aninhada
Action#Builder
da interfaceAction
. As implementações do Builder já são fornecidas pelas classesLoadAction
eLaunchAction
. (I1d70c). - Permita o uso de
DynamicFloat
comFloatProp
.FloatProp
não exige restrições de layout, porque não é usado como uma propriedade de mudança de layout. (I286ac) - As ações
LoalAction
eSetStateAction
foram removidas porque ainda não tinham suporte. (I5d6a6). - Foi adicionado suporte ao formato ARGB_8888 para recursos de imagem inline. (I8a07c).
- Renomeação de
StateEntryValue
paraDynamicDataValue
e atualização das APIs de estado para usarDynamicDataKey
(If1c01). - Estamos limitando o número de entradas permitidas no
StateStore
para garantir que o uso de memória e o tempo de atualização de estado sejam bem contidos e controlados para cada instância doStateStore
. Como resultado, o desenvolvedor precisa garantir que não tenha mais deMAX_STATE_ENTRY_COUNT
entradas no mapa. Caso contrário, ele vai receber umaIllegalStateException
ao criar ou atualizar oStateStore
. (Ibadb3). - Ocultar as classes
OnLoadTrigger
eOnConditionMetTrigger
e renomearsetTrigger
comosetCondition
paraOnConditionMetTrigger
. (Ibf629). - Por motivos de desempenho e compatibilidade, os renderizadores
ProtoLayout
não oferecem suporte ao conjunto completo de recursos dos recursosAnimatedVectorDrawable
. Vamos marcar essas APIs como experimentais até que possamos definir o conjunto compatível. (Ic6daf). - Foram adicionados tipos dinâmicos para distância diária, calorias diárias e andares diários. As chaves para fontes de integridade da plataforma agora estão em
PlatformHealthSources.Keys
(Ib7637). - O método
Easing.cubicBezier
substitui oCubicBezierEasing.Builder
. Com isso, a classeEasingFunction
é removida, e as constantes de suavização dessa classe agora podem ser acessadas diretamente na interfaceEasing
. Além disso,setInfiniteRepeatable
foi substituído porINFINITE_REPEATABLE_WITH_RESTART
eINFINITE_REPEATABLE_WITH_REVERSE
(Ib41e7). - Implemente
PlatformDataProvider
para fornecer frequência cardíaca e passos diários. A interfaceSensorGateway
foi removida da API pública. (I55b84). - Adição de
PlatformDataProvider
e atualização deStateStore
para registro emPlatformDataProvider
quando a chave com suporte do provedor é exigida pelo nó do pipeline de expressão. (Ib616a). SensorGateway
não é maisCloseable
, porque não mantém mais nenhum estado. (I6b4f7).- Permitir o uso de
FloatProp
comDynamicFloat
para o progresso emCircularProgressIndicator
. Isso é compatível com renderizadores que suportam a versão 1.2. Os renderizadores antigos vão usarstaticValue
se for fornecido. Caso contrário, vão usar 0 (I0d91b). - As constantes
MultiButtonLayout
foram refatoradas na classeLayoutDefaults.MultiButtonLayoutDefaults
, que agora contém as constantes para tamanhos de botão dependendo do número de botões no layout. (I13973). - Suporte ao uso de
StringProp
comDynamicString
no Material Text. Isso é compatível com renderizadores que suportam a versão 1.2. Os renderizadores antigos vão usar o valor estático fornecido. O tipo de retorno deText#getText
foi atualizado deString
paraStringProp
. (I7275b).
Versão 1.0.0-alpha09
10 de maio de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha09
. A versão 1.0.0-alpha09 contém estas confirmações.
Novos recursos
- Adicionamos um elemento de layout de extensão experimental. Ele não pode ser usado por padrão e requer uma extensão de renderizador capaz de entender o elemento de layout. (I6581d).
- Adição de suporte a
StrokeCap
paraArcLine
. (I94951). - Adição de suporte à operação instantânea condicional. (I489a7).
- Adição de suporte à operação de duração condicional. (Iab469).
- Adição de suporte para a criação de duração a partir de segundos. (Ib5fa1).
Mudanças na API
- Os métodos
enable/disablePlatformSource
foram removidos deDynamicTypeEvaluator
. O autor da chamada precisa ser responsável pelas atualizações. (I78c6d). - Permite limitar o tamanho de tipos de dados vinculados. (Ie2966).
- Adição de suporte à descrição de conteúdo dinâmico em
protolayout-material
. (I62c8e). - Use long e
@IntRange
para duração e atraso em AnimationParameters. (I388b6).
Versão 1.0.0-alpha08
19 de abril de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha08
. A versão 1.0.0-alpha08 contém estas confirmações.
Novos recursos
AndroidTextStyle
foi adicionado(a) aLayoutElementBuilders
. (I8d967).- Adicionamos suporte para definir o padding da fonte, exceto no Material Text
ProtoLayout
(I17f5d). - Agora, o ARGB_8888 tem suporte para imagens inline. (I18c1e).
- Agora, o
DynamicColor
oferece suporte à operaçãoonCondition
. (I10927).
Mudanças na API
- Suporte a duração personalizada para animação reversa (I3251f).
- Adicionamos o modificador
SemanticDescription
. Além disso,ContentDescription
não pode ser vinculado. (I3f1d). - O método
DynamicBool.isFalse()
foi substituído porDynamicBool.negate()
, e oDynamicBool.isTrue()
foi removido. Além disso, valores NaNDynamicFloat
e a restrição de umDynamicInt32
a umDynamicFloat
agora emitem um resultado dinâmico inválido. (I6ac1e). - Os formatadores de números inteiros e de ponto flutuante agora usam o padrão Builder. (Ieb213).
Correções de bugs
- O valor estático de fallback foi removido dos campos animáveis. (Ifcb01).
- O
DynamicTypeValueReceiver#onPreUpdate
foi removido. (I2dc35). - A duração das strings em expressões dinâmicas agora é limitada. (I4c93).
- As dependências do Gradle agora são definidas corretamente como
api
em vez deimplementation
quando necessário. (I40503).
Versão 1.0.0-alpha07
5 de abril de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha07
. A versão 1.0.0-alpha07 contém estas confirmações.
Novos recursos
- Adição de suporte a valores dinâmicos a
StringProp
(I04342). - Marcação de elementos de layout vinculáveis (Ia110b).
Mudanças na API
sensorGateway#registerSensorGatewayConsumer
usa o tipo de dados como um parâmetro em vez de método no consumidor. (Icf314).ObservableStateStore
foi renomeado comoStateStore
(Ieb0e2).- Adição de
DynamicTypeEvaluator.Builder
em vez de argumentos de construtor para permitir mais argumentos opcionais, incluindoObservableStateStore
, que agora é o padrão para uma loja vazia. (I6f832). - Ordem de parâmetros refatorada em
DynamicTypeEvaluator
. (Ic1ba4).
Correções de bugs
- Os indicadores das fontes de sensores da plataforma são propagados corretamente para os nós downstream (I5a922).
Versão 1.0.0-alpha06
22 de março de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha06
. A versão 1.0.0-alpha06 contém estas confirmações.
Novos recursos
- Adicionamos uma API experimental para usar a frequência cardíaca e as etapas diárias em expressões dinâmicas (Ifd711).
- Adicionamos suporte a atrasos de reversão e avanço para animações. (Ic25f7).
- Adicionamos suporte a
DynamicColor
para bordas e segundo plano - Adicionamos suporte a valores dinâmicos aos tipos em
DimensionBuilder
- O layout e os componentes de
tiles-material
estão sendo movidos paraprotolayout-material
Mudanças na API
LoadActionListener
foi adicionado(a) aProtoLayoutViewInstance
. (If7806).
Correções de bugs
FloatNodesTest
foi adicionado (Id7281).- Correção da falha do renderizador quando não é possível carregar o bitmap estruturado.
Versão 1.0.0-alpha05
8 de março de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha05
. A versão 1.0.0-alpha05 contém estas confirmações.
Novos recursos
- Adicionamos uma animação experimental de "atualização de conteúdo" ao objeto
Modifiers
. Essa animação será acionada sempre que o elemento (com esse modificador) ou um dos filhos dele mudar durante uma atualização de layout. (bd03e5d).
Mudanças na API
- Adicionamos
forwardRepeatDelayMillis
ereverseRepeatDelayMillis
aRepeatable
. Também renomeamosdelayMillis
emAnimationSpec
parastartDelayMillis
(Ifb266). - Os métodos
DynamicTypeEvaluator.bind
agora aceitam um executor. (I346ab). - Adicionamos o método
startEvaluation
aoBoundDynamicType
para acionar a avaliação depois que o tipo dinâmico é vinculado. (I19908).
Correções de bugs
- O objeto Animator será reutilizado para animações subsequentes de um único elemento. (Ia3be9).
Versão 1.0.0-alpha04
22 de fevereiro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha04
. A versão 1.0.0-alpha04 contém estas confirmações.
Novos recursos
- O
ObservableStateStore
agora informa aos listeners quando uma chave é removida. - Adicionamos a versão do esquema do renderizador e a escala da fonte a
DeviceParameters
, que pode ser usada para criar layouts condicionalmente em resposta a diferentes versões e configurações de fonte. - Adicionamos suporte à animação de valores
DynamicInt32
(I05485). - Adicionamos os gatilhos
OnLoad
eOnConditionalMet
. Eles podem ser usados para iniciar animações que aceitam um gatilho. - Adicionamos o peso do layout para dimensões expandidas e o tamanho mínimo para dimensões unidas.
- Adicionamos os tipos dinâmicos "duração" e "instantâneo". Eles podem ser usados para representar um instante ou duração em uma expressão dinâmica.
- Adicionamos suporte a
AnimatedVectorDrawable
eSeekableAnimatedVectorDrawable
como recursos de layout.
Mudanças na API
- Os dados do sensor exigem a API 29 ou mais recente. (I8099e)
- Adicionamos dois métodos auxiliares
launchAction
(para iniciar atividades).
Correções de bugs
- O nome
set/getSpec
foi renomeado comoset/getAnimationSpec
na animação de blocos (I3d74b).
Versão 1.0.0-alpha03
8 de fevereiro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha03
. A versão 1.0.0-alpha03 contém estas confirmações.
Novos recursos
- Adicionamos
toByteArray()
efromByteArray()
aos tipos dinâmicos na biblioteca protolayout-express. - Adicionamos
toString()
aos tipos dinâmicos na biblioteca protolayout-expression. - Adicionamos suporte a avaliações para tipos dinâmicos. A classe
DynamicTypeEvaluator
da biblioteca protolayout-expression-pipeline pode ser usada para avaliar e receber valores atualizados para um tipo dinâmico criado anteriormente (DynamicString
,DynamicFloat
, …) - Quando não é possível reproduzir as animações, seja porque foram desativadas pelo avaliador ou porque o número de animações em execução atingiu o limite definido, os valores estáticos definidos no nó animado são usados para substituir a animação.
Versão 1.0.0-alpha02
25 de janeiro de 2023
Lançamento de androidx.wear.protolayout:protolayout:1.0.0-alpha02
, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02
e androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02
. A versão 1.0.0-alpha02 contém estas confirmações.
Novos recursos
- Os builders de layout de
androidx.wear.tiles:tiles
estão sendo movidos paraandroidx.wear.protolayout:protolayout
. O uso deandroidx.wear.tiles:tiles
vai ser descontinuado em uma das próximas versões Alfa.
Versão 1.0.0-alpha01
11 de janeiro de 2023
Lançamento de androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01
e androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01
. A versão 1.0.0-alpha01 contém estas confirmações.
Novos recursos
- Esta versão apresenta uma nova biblioteca ProtoLayout Expression para criar expressões usando variáveis dinâmicas.