Wear Compose
Atualização mais recente | Versão estável | Versão candidata a lançamento | Versão Beta | Versão Alfa |
---|---|---|---|---|
2 de julho de 2025 | 1.4.1 | - | 1.5.0-beta05 | - |
Declarar dependências
Para adicionar uma dependência ao Wear, adicione o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.
Adicione as dependências dos artefatos necessários ao arquivo build.gradle
do
seu app ou módulo:
Groovy
dependencies { implementation "androidx.wear.compose:compose-foundation:1.4.1" // For Wear Material Design UX guidelines and specifications implementation "androidx.wear.compose:compose-material:1.4.1" // For integration between Wear Compose and Androidx Navigation libraries implementation "androidx.wear.compose:compose-navigation:1.4.1" // For Wear preview annotations implementation("androidx.wear.compose:compose-ui-tooling:1.4.1") // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material. // androidx.wear.compose:compose-material is designed as a replacement // not an addition to androidx.compose.material:material. // If there are features from that you feel are missing from // androidx.wear.compose:compose-material please raise a bug to let us know. }
Kotlin
dependencies { implementation("androidx.wear.compose:compose-foundation:1.4.1") // For Wear Material Design UX guidelines and specifications implementation("androidx.wear.compose:compose-material:1.4.1") // For integration between Wear Compose and Androidx Navigation libraries implementation("androidx.wear.compose:compose-navigation:1.4.1") // For Wear preview annotations implementation("androidx.wear.compose:compose-ui-tooling:1.4.1") // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material. // androidx.wear.compose:compose-material is designed as a replacement // not an addition to androidx.compose.material:material. // If there are features from that you feel are missing from // androidx.wear.compose:compose-material please raise a bug to let us know. }
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.
Wear Compose: versão 1.5
Versão 1.5.0-beta05
2 de julho de 2025
Lançamento de androidx.wear.compose:compose-*:1.5.0-beta05
. A versão 1.5.0-beta05 contém estas confirmações.
Correções de bugs
- Atualização da documentação para esclarecer o uso de
Modifier.edgeSwipeToDismiss
(I78cb5). - Correção de um bug em que vários itens revelados podiam ser mostrados com
SwipeToReveal
em listas lentas (I1d4f6) - As formas de contêiner em
TransformingLazyColumn
agora são dimensionadas para evitar o corte do conteúdo. (I9221a) - Os rótulos
TimePicker
eDatePicker
para hora/minuto/segundo ou ano/mês/dia agora têm semântica de cabeçalho para leitores de tela (I77d8b). - Remoção da pausa entre loops no
CircularProgressIndicator
indeterminado (Iaf0bb) - Correção de um bug de animação em
TransformingLazyColumn
quando os itens são removidos. (I73034) - Correção do processamento de itens de âncora em
TransformingLazyColumn
quando itens são removidos. (I841a8). - Agora,
PickerGroup
anima os seletores horizontalmente quando a centralização automática está ativada e o seletor selecionado (centralizado) é alterado. (Ic82c4).
Versão 1.5.0-beta04
18 de junho de 2025
Lançamento de androidx.wear.compose:compose-*:1.5.0-beta04
. A versão 1.5.0-beta04 contém estas confirmações.
Correções de bugs
- Correção de um bug de layout em
TransformingLazyColumn
, em que o conteúdo que cabe na tela agora é alinhado corretamente na parte de cima dela (I80115) - Correção de um problema com
TransformingLazyColumn
em que o item da parte de baixo era dimensionado incorretamente ao rolar até a parte de baixo de uma lista com umEdgeButton
. O progresso da rolagem agora segue um gradiente descendente ao restaurar o layout. (Iea375) - O
TransformingLazyColumn
agora lê a altura do item no painter de segundo plano, o que permite queTransformationSpecs
personalizado implemente a transformação. (I022f0). SwipeToReveal
agora centraliza verticalmente as ações reveladas corretamente. (I4419b).- Corrigimos um bug no
SwipeToReveal
que impedia o funcionamento correto com o gesto de deslizar para dispensar se as visualizações e o Compose estivessem em uso na tela. (I5dc0e) - Correção de um bug em que as ações
SwipeToReveal
eram desenhadas com um deslocamento vertical ao rolar a tela. (I29444) AlertDialog
,ConfirmationDialog
,OpenOnPhoneDialog
eSwipeToReveal
agora arredondam paddings e tamanhos calculados como uma porcentagem do tamanho da tela. (I76367).- O
ButtonDefaults.outlinedButtonBorder
agora atualiza o tamanho seguindo as mudanças de estado ativado/desativado(If2ddd). - Correção de um bug na altura do
EdgeButton
que ocorria em telas complexas com Pager eScreenScaffold
. (I946e3). - Correção de uma disputa que poderia fazer com que as animações de marcador de posição parassem. (I53530).
- Melhoria na performance de
HorizontalPageIndicator
eVerticalPageIndicator
ao desenhar no Canvas. (Ifae1e). - Refinamos o formato do EdgeButton para suavizar as transições entre as reticências e os círculos que compõem o contorno. (I7721e).
- Correção de um bug no
LevelIndicator
que fazia as animações pararem devido a recomposições desnecessárias. (I45d08).
Versão 1.5.0-beta03
4 de junho de 2025
Lançamento de androidx.wear.compose:compose-*:1.5.0-beta03
. A versão 1.5.0-beta03 contém estas confirmações.
Mudanças na API
- O
OpenOnPhoneDialog
agora anuncia apenas o texto da mensagem no TalkBack e ignora a semântica do ícone. AsOpenOnPhoneDialogDefaults
foram atualizadas para remover oiconContentDescription
e o parâmetrocontentDescription
deicon()
. Além disso, oConfirmationDialogDefaults
agora tem parâmetros de modificador nos elementos combináveisSuccessIcon
eFailureIcon
. (Id2ae2).
Correções de bugs
- Mudança na ordem em que aplicamos o efeito dos parâmetros
SurfaceTransformation
. Antes, as transformações aplicadas aos componentes do Wear Material3 eram feitas da seguinte maneira: pintor de plano de fundo, transformação de contêiner e transformação de conteúdo. Agora, os dois primeiros estão invertidos, e aplicamos qualquer modificador transmitido entre eles. Assim, ele é afetado pelas transformações de contêiner. Isso corrige casos como o uso de um efeito de brilho de marcador de posição com elementos em um TLC usando o parâmetro de transformação. (I786cf). RevealState.Saver
foi adicionado para ser usado na restauração do estado deSwipeToReveal
quando a atividade ou o processo é recriado. A funçãorememberRevealState
agora usa esse Saver por padrão. (Ie0ecb)- Os botões de ações primárias e secundárias
SwipeToReveal
agora usamButtonDefault.Height
por padrão. Corrigimos um bug em que eles preenchiam a altura máxima de botões mais altos. (Ibfba1). - Mudança em
SwipeToReveal
para redefinir o último componente com que se interagiu quando o gesto de deslizar para a direita é realizado. (Ia8450). SwipeToReveal
foi alterado para ficar no estadoRevealing
quando a posição final do gesto de deslizar estiver entre as âncoras de revelação e revelada e mais próxima da âncora de revelação. (If4458).- Agora, o conteúdo de
ButtonGroup
é invertido corretamente em um layout RTL (Ib378d). - O
AnimatedText
agora é compatível com a direção de texto RTL (I4533c). - Agora, o
TransformingLazyColumn
redimensiona os itens corretamente quando o item da parte de baixo é removido. Idacab - Agora, o
TransformingLazyColumn
faz apenas uma passagem de medição, o que melhora a performance reduzindo os tempos de frame. (I501a1)
Versão 1.5.0-beta02
20 de maio de 2025
Lançamento de androidx.wear.compose:compose-*:1.5.0-beta02
. A versão 1.5.0-beta02 contém estas confirmações.
Correções de bugs
- Perfis de referência atualizados para bibliotecas foundation, material e material3. (I53f06).
- Correção de um bug em
TransformingLazyColumn
, em que os itens eram redimensionados quando o item de baixo era removido. (Idacab). - Correção de um bug com
TransformingLazyColumn
, quando a lista ficava presa na parte de cima ou de baixo. (I49d00). - O
OpenOnPhoneDialog
no TalkBack precisa anunciar o texto curvo, e não a descrição do conteúdo do ícone. (I4efe8). - Correção de um bug no
SwipeToReveal
que informava a âncora errada emRevealState.currentValue
quandohasPartiallyRevealedState
era definido como "false". (I9c7cf). - Os botões de desfazer
SwipeToReveal
agora sãoButtonDefaults.Height
por padrão. (I1f6c8). - O desempenho do
BasicSwipeToDismissBox
foi melhorado com a eliminação do uso do Canvas para desenhar scrims. (I68f2c). - Correção de um bug de acessibilidade no controle deslizante, em que a porcentagem anunciada não correspondia ao valor após as atualizações (I91146)
- Correção de um bug na implementação de
placeholderShimmer
. (Iee39b - A performance do
TransformingLazyColumn
foi melhorada com a otimização do cálculo doScrollProgress
em 30%. (I4c4cb)
Versão 1.5.0-beta01
7 de maio de 2025
Lançamento de androidx.wear.compose:compose-*:1.5.0-beta01
. A versão 1.5.0-beta01 contém estas confirmações.
A versão 1.5.0-beta01 do Compose para Wear OS indica que esta versão da biblioteca está com todos os recursos e a API está bloqueada (exceto quando marcada como experimental).
O Wear Compose 1.5.0-beta01 inclui a biblioteca Wear Compose Material3, que é compatível com o novo sistema de design de interface chamado Material 3 Expressive. Recomendamos fazer upgrade do Material para o Material3 para adotar o novo design visual nos apps e aproveitar os novos componentes da seguinte forma:
MaterialTheme
para esquemas de cores, tipografia e formas atualizados e estendidos, trazendo profundidade e variedade aos seus designs.- Temas de cores dinâmicos que geram automaticamente um esquema de cores para seu app de acordo com as cores do mostrador do relógio.
- Os novos componentes se adaptam automaticamente a tamanhos de tela maiores por padrão
- Transformação de formas: componentes de botões redondos, como
IconButton
,TextButton
,IconToggleButton
eTextToggleButton
, oferecem suporte a variações que são animadas quando pressionadas ou marcadas. EdgeButton
: um novo botão que se ajusta à borda com um formato especial projetado para a parte de baixo da tela.- Scaffolds: introdução de
AppScaffold
eScreenScaffold
para definir o layout da estrutura da tela e coordenar as animaçõesScrollIndicator
eTimeText
. - Botões: vários botões em forma de estádio são compatíveis com contêineres flexíveis de slot único e variações de vários slots para botões com ícones e rótulos.
CheckboxButton
eSwitchButton
são fornecidos quando botões de alternância são necessários, enquantoRadioButton
é o botão de seleção disponível. Também são fornecidas variações de "divisão" dos botões de alternância e seleção. ButtonGroup
: implementa um grupo expressivo de botões em uma linha que mudam de forma quando tocados.- As variações de
AlertDialog
aceitam botões de confirmação/cancelamento ou umEdgeButton
. ConfirmationDialog
está disponível para mostrar uma mensagem com um tempo limite, oferecendo suporte a animações especiais para variações de sucesso, falha e abrir no smartphone.- Seletores: as variações
TimePicker
eDatePicker
são compatíveis, assim como os componentes Picker ePickerGroup
para criar suas próprias telas de seleção. ProgressIndicators
: indicadores de progresso circulares e lineares são compatíveis. OCircularProgressIndicator
tem variações segmentadas e indeterminadas.- Cards: várias variações estão disponíveis, incluindo
TitleCard
, que oferece layouts específicos para cards com slots de título, hora, subtítulo ou conteúdo. OTitleCard
também pode receber uma imagem de plano de fundo para reforçar o significado das informações em um card. - Paginação: os componentes
HorizontalPagerScaffold
,VerticalPagerScaffold
eAnimatedPage
coordenam as animaçõesHorizontalPageIndicator
eVerticalPagerIndicator
.HorizontalPager
eVerticalPager
são lançados na biblioteca Wear Compose Foundation. - Marcadores de posição: desenham uma forma de esqueleto sobre um componente para situações em que nenhum conteúdo provisório está disponível.
- Controles deslizantes e steppers: ambos permitem que os usuários escolham um valor em um intervalo. Os controles deslizantes são mais compactos e podem ser segmentados, enquanto o Stepper é um componente de tela inteira geralmente pareado com um
StepperLevelIndicator
. SwipeToReveal
: usado para adicionar outras ações a um elemento combinável quando ele é deslizado da direita para a esquerda.
Além disso, a Wear Compose Foundation 1.5.0-beta01 inclui estes novos componentes:
TransformingLazyColumn
: uma lista de rolagem vertical lenta que oferece suporte a animações de escalonamento e transformação.- Grupos focais hierárquicos: usados para anotar elementos combináveis em um aplicativo, acompanhar a parte ativa da composição e coordenar o foco.
- Paginação: componentes
HorizontalPager
eVerticalPager
, criados com base nos componentes do Compose Foundation e melhorias específicas do Wear para melhorar a performance e a conformidade com as diretrizes do Wear OS.
Mudanças na API
- Atualização da API Hierarchical Focus: renomeação de
Modifier.hierarchicalFocus
paraModifier.hierarchicalFocusGroup
e remoção do parâmetro de callback; remoção da sobrecarga deModifier.hierarchicalFocusRequester
com um parâmetroFocusRequester
; criação de um novoCompositionLocal
,LocalScreenIsActive
para que os componentes possam informar e verificar qual tela está ativa. (I5ff7c). - Descontinuamos
SwipeToReveal
da Wear Compose Foundation em favor das APIsSwipeToReveal
no Wear Compose Material e no Wear Compose Material3. Substitua as importações do Wear FoundationSwipeToReveal
pelas importações do Wear Compose Material/ Wear Compose Material3 para continuar usando as APIs. (Ia147d). - As dependências do Wear Compose Material3
SwipeToReveal
no Foundation foram movidas para o pacote material3, por exemplo,RevealValue
,RevealDirection
,RevealActionType
,RevealState
,rememberRevealState
. Os desenvolvedores precisam mudar as importações dessas classes e funções deandroidx.wear.compose.foundation
paraandroidx.wear.compose.material3
. (I640e6). - Atualizamos a API
SwipeToReveal
do Wear Compose Material3 da seguinte maneira: adicionamos os parâmetrosprimaryAction
,onFullSwipe
,secondaryAction
,undoPrimaryAction
,undoSecondaryAction
ehasPartiallyRevealedState
ao elemento combinávelSwipeToReveal
; removemos a capacidade de personalizarpositionalThreshold
eanimationSpec
deRevealState
; removemoslastActionType
,revealThreshold
e a largura deRevealState
; mudamos o construtorRevealState
para aceitar umRevealDirection
em vez de âncoras; removemos as funçõescreateRevealAnchors
, âncoras ebidirectionalAnchors
; as funçõesSwipeToRevealScope
primaryAction
,secondaryAction
,undoPrimaryAction
eundoSecondaryAction
foram renomeadas comoPrimaryActionButton
,SecondaryActionButton
,UndoActionButton
e transformadas em funções combináveis; marcamosRevealActionType
como interno. (I885d0). - Atualizamos ainda mais a API
SwipeToReveal
da seguinte maneira: renomeamosonFullSwipe
paraonSwipePrimaryAction
eSwipeToRevealNonAnchoredSample
para indicar o uso do parâmetrohasPartiallyRevealedState
. RemovemosactionButtonHeight
, já que o padrão é a altura padrão do botão, e a altura maior pode ser definida usando um modificador. RemovemosSmallActionButtonHeight
deSwipeToRevealDefaults
e tornamos o parâmetro de valor nos construtoresRevealValue
eRevealDirection
particular. (I465ce).
Correções de bugs
- Corrigimos o processamento de
EdgeButton
doScreenScaffold
para que, depois que um itemTransformingLazyColumn
for removido, oEdgeButton
seja animado no lugar. (I6d366). - As dependências do Wear Compose nas bibliotecas do Compose foram atualizadas para a versão 1.8.0. (I2ef3f).
- Atualizamos o movimento do
CircularProgressIndicator
indeterminado para que ele não regrida temporariamente. (Ieddb1). - Correção de um bug de
SwipeDismissableNavHost
: o foco não mudava corretamente após deslizar para trás, fazendo com que a entrada rotativa falhasse (isso era para a API 36 ou mais recente, que usa o retorno preditivo). (Ieddb1). - Documentação alterada para a API Hierarchical Focus (Idf2ff).
- Atualizamos a documentação de "Button" e "Card" para explicar como
containerPainter
edisabledContainerPainter
substituemcontainerColor
edisabledContainerColor
(I4a453). - Foi revertida uma mudança em
TimeText
na versão anterior, que moveu oBroadcastReceiver
para uma linha de execução de trabalho, porque isso causava problemas em apps que gerenciam a própria capacidade de execução simultânea durante a navegação. (I34d02). - Atualizamos os exemplos do seletor para remover chamadas de memorização desnecessárias e usar
rememberUpdatedState
no seletor para lembrar a função lambdacontentDescription
mais recente. (Icb5b1). - Atualizamos os estilos de texto em
TimePicker
eDatePicker
para que as mudanças de fonte não resultem mais em truncamento. (I26194). - Por padrão,
ListHeader
eListSubHeader
agora alinham o texto ao centro e ao início, respectivamente. (I78339). - Atualizamos as amostras e demonstrações do Foundation e do Material Swipe to Reveal para anunciar ações de acessibilidade personalizadas. As ações personalizadas precisam ser adicionadas como semântica no conteúdo, não no próprio elemento combinável
SwipeToReveal
. (Ie92a3). - Atualizamos o conjunto
MaxLines
padrão no conteúdoEdgeButton
de acordo com o tamanho. Agora é 1 para extrapequeno, 2 para pequeno e médio e 3 para grande. (Ie35f6). LocalReduceMotion
simplificado para que o observador seja registrado apenas uma vez, melhorando a performance. (Ib1979).- Minimizamos o número de redimensionamentos em
ScrollIndicator
para melhorar a performance. (Ia7a67). - Correção de um bug no
TransformingLazyColumn
, em que o item visível na parte de cima da lista não era dimensionado corretamente quando o EdgeButton atingia a altura total. (I30580).
Versão 1.5.0-alpha14
23 de abril de 2025
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha14
. A versão 1.5.0-alpha14 contém estas confirmações.
Mudanças na API
- Todas as dependências do Material
SwipeToReveal
no FoundationSwipeToReveal
foram movidas para o pacote Material, por exemplo,RevealValue
,RevealDirection
,RevealActionType
,RevealState
,rememberRevealState
. Os desenvolvedores precisam mudar as importações dessas classes e funções deandroidx.wear.compose.foundation
paraandroidx.wear.compose.material
. (Ib7cb8). - A API de
HierarchicalFocusCoordinator
foi atualizada para ser modificadores em vez de elementos combináveis. - Observações sobre a migração:
HierarchicalFocusCoordinator(function, content)
pode ser substituído adicionando umModifier.hierarchicalFocus(function())
acontent
ou ao elemento combinável de inclusão.ActiveFocusListener { if (it) focusRequester.requestFocus() }
pode ser substituído pela adição deModifier.hierarchicalFocusRequester(focusRequester)
- Outros usos mais raros de
ActiveFocusListener
podem usar o novo parâmetro emModifier.hierarchicalFocus
focusRequester(rememberActiveFocusRequester())
pode ser substituído porhierarchicalFocusRequester()
val focusRequester = rememberActiveFocusRequester()
pode ser substituído porremember { FocusRequester() }
e adicionandoModifier.hierarchicalFocusRequester(focusRequester)
. (Ie319a).
Correções de bugs
- O limite de velocidade que os gestos de deslizar precisam exceder para acionar uma mudança de estado foi aumentado para os seguintes componentes:
SwipeToReveal
,BasicSwipeToDismissBox
eSwipeDismissableNavHost
(somente para API 35 e versões anteriores paraSwipeDismissableNavHost
). (If47bf) - Correção de um problema de animação quando novos itens são adicionados ao
TransformingLazyColumn
. (I589b2).
Versão 1.5.0-alpha13
9 de abril de 2025
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha13
. A versão 1.5.0-alpha13 contém estas confirmações.
Mudanças na API
- Os projetos lançados com o Kotlin 2.0 exigem o KGP 2.0.0 ou mais recente para serem consumidos (Idb6b5)
- A propriedade
targetPage
foi adicionada aPagerState
(I4de8b).
Correções de bugs
- Evitar recomposições desnecessárias durante a volta preditiva. (Iecd6d).
- Correção da propriedade
isScrollable
deScrollInfoProvider
para retornar o valor atual. (Icbfb8).
Versão 1.5.0-alpha12
26 de março de 2025
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha12
. A versão 1.5.0-alpha12 contém estas confirmações.
Mudanças na API
- Melhoria na implementação padrão de
SwipeToReveal
degestureInclusion
para ignorar gestos apenas se o estado do componente for "Covered". (I7e3d6). - Para
SwipeToReveal
, transformamosbidirectionalGestureInclusion
em um valor em vez de uma função e adicionamos@FloatRange
ao parâmetroedgeZoneFraction
emgestureInclusion
. (Ica7c3).
Correções de bugs
- Mude
SwipeToReveal
bidirectionalGestureInclusion
para retornar um objeto em vez de uma classe. (I29597) - Desativado o uso de hápticos ao executar testes em
RoboElectric
. (I58bd1). - Atualize os paddings
SwipeToReveal
entre o conteúdo e os botões de ação, além do padding entre o ícone e o texto dos botões de ação. (Ic46cb).
Versão 1.5.0-alpha11
12 de março de 2025
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha11
. A versão 1.5.0-alpha11 contém estas confirmações.
Mudanças na API
- Atualização de
PagerState
, removendo oPagerState
do Compose Foundation como classe base e adicionando propriedadescurrentPage
,currentPageOffsetFraction
epageCount
. Atualizamos a interfaceGestureInclusion
, renomeando o método paraignoreGestureStart
. (I4ae07) - Adicione
requireOffset
aSwipeToDismissBoxState
como a maneira recomendada de receber um deslocamento deSwipeToDismissBoxState
. (I21042) - Adição de
CurvedModifier.semantics
, inicialmente com suporte para descrição de conteúdo e índice de navegação (I0b093) - Adicionamos
CurvedModifier.clearAndSetSemantics
para oferecer uma maneira de desativar a semântica curva.CurvedText
continua definindo a descrição do conteúdo como texto, mastimeTextCurvedText
etimeTextSeparator
não anunciam mais o conteúdo. (I4b568) - O processamento padrão de gestos de deslizar do
HorizontalPager
foi renomeado comoPagerDefaults.gestureInclusion
. O comportamento padrão agora é ignorar apenas os gestos de deslizar que começam na borda esquerda da primeira página e somente quando o Talkback está desativado. Em outros casos, o comportamento padrão é que os gestos de deslizar não sejam ignorados pelo pager, portanto, não estarão disponíveis para os manipuladores de deslizar para dispensar. (Iee486). - Adição de rolagem rotativa para a API
rotaryScrollable
. Overscroll e rolagem aninhada foram adicionados ao comportamento de deslizarrotaryScrollable
. Essa mudança deve trazer funcionalidade de rolagem aninhada e de overscroll equivalente entre a rolagem por toque e a rolagem rotativa. (I71926) - Adição de suporte para uma zona de deslizar na borda em
SwipeToReveal
. O comportamento padrão do FoundationSwipeToReveal
agora é não permitir deslizar quando o gesto começa na borda. O comportamento padrão doSwipeToReveal
do Material3 agora é não permitir deslizar quando o gesto começa na borda e oSwipeDirection
está definido como uma única direção. (I32ef0). - Agora, o TLC usa contentPadding vazio por padrão em vez de colocar o primeiro e o último itens no centro. (I77ab7).
Correções de bugs
- As bibliotecas do Wear Compose foram atualizadas para o compilador Kotlin 2.0. (I2de79).
- Correção da amostra curva
LetterSpacing
na base. (Iebf7c).
Versão 1.5.0-alpha10
26 de fevereiro de 2025
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha10
. A versão 1.5.0-alpha10 contém estas confirmações.
Mudanças na API
- Torne
SwipeToRevealDefaults
público. (I0c34c). - Substituímos o parâmetro
swipeToDismissEdgeZoneFraction
emHorizontalPager
. Em vez disso, um novo parâmetro,gestureInclusion
, foi introduzido e pode ser usado para alcançar o comportamento necessário de deslizar para dispensar.gestureInclusion
usa uma instância deGestureInclusion
, que decide se o evento de rolagem subsequente deve continuar ou não. Permitir um gesto significa que o Pager o consome. Caso contrário, ele será processado em outro lugar, como um manipulador de deslizar para dispensar. O novo comportamento padrão é não permitir gestos na borda mais à esquerda da primeira página no Pager e, portanto, permitir o deslizar para dispensar nessa região. Todas as outras páginas permitem que o pager consuma todos os gestos, o que significa que o deslizar para dispensar não pode ser acionado nelas. Para conseguir o comportamento de deslizar para dispensar em todas as páginas, basta fornecer uma instânciaGestureInclusion
personalizada (consultePagerDefaults.disableLeftEdgeOnFirstPage
) que ignore a página atual. Outra mudança incompatível introduzida aqui é que o componente Pager não é mais tela cheia por padrão. Em vez disso, adicioneModifier.fillMaxSize()
para alcançar esse comportamento. (I9d3aa) - Renomeamos
createAnchors
comocreateRevealAnchors
na API de deslizar para revelar(If5999). - Removemos
RevealScope
da API de deslizar para revelar. (Ie4ad5). - Removemos "Revealing" e "Revealed" de
RevealValue
na API de deslizar para revelar. (I8dbc5). - Renomeamos
SwipeDirection
comoRevealDirection
na API de deslizar para revelar. (I7472f). - Mudamos a assinatura do parâmetro
positionalThreshold
da funçãorememberRevealState
deSwipeToReveal
. (I29c0a). - Adicionamos um novo parâmetro
overscrollEffect
aScalingLazyColumn
,TransformingLazyColumn
eScreenScaffold
. (I0cee8). - Ao usar
PagerDefaults#snapFlingBehaviour
, o parâmetropagerSnapDistance
foi substituído por um parâmetro IntmaxFlingPages
, que pode ser usado para especificar o número máximo de páginas que o Pager deve deslizar. (I8cfc0). - O Wear Pager agora tem o próprio
PagerScope
em vez de usar oPagerScope
do Compose Foundation. (I9195b). - Adicionamos suporte a
lineHeight
no texto curvo (I1c936). - Adicionamos
initialAnchorItemIndex
einitialAnchorItemOffset
aTransformingLazyColumnState
erememberTransformingLazyColumnState
para que a posição de rolagem inicial possa ser especificada emTransformationLazyColumn
. (I0a0d5). - Descontinuar
runWithTimingDisabled
em favor derunWithMeasurementDisabled
, que descreve mais claramente o comportamento: todas as métricas são pausadas. Além disso, exponha a superclasseMicrobenchmarkScope
, já que não é possível redeclarar a funçãorunWithMeasurementDisabled
para abrir o acesso porque ela é inline. (I9e23b, b/389149423, b/149979716). - Adicionamos
TransformingLazyColumnItemScrollProgress.Unspecified
à API para evitar o boxing emTransformingLazyColumnItemScrollProgress
. (I0835d).
Correções de bugs
- Melhoria do Kdoc para
CurvedTextStyle
(Id45e3). - Tornamos
SwipeableV2
(parte da implementaçãoSwipeToReveal
) interno em vez de público, mas restrito ao grupo da biblioteca. (Idbb94). - Adicionamos testes ao
HierarchicalFocusCoordinator
(I1ce54, b/395548918). - Fizemos melhorias no
SwipeToReveal
nas amostras de fundação do Wear Compose. (I5f307). - Correção dos dados semânticos do eixo de rolagem para
verticalScrollAxisRange
emTransformingLazyColumn
para acessibilidade (I68123). - Melhoria no desempenho da resposta tátil rotativa no Wear4+ ao remover linhas de execução em segundo plano desnecessárias (I39cfe)
- Mude
SwipeDismissableNavHost
para usarPredictiveBackNavHost
somente na API 36 e versões mais recentes. (I59bed). - Adicionamos uma proteção contra falhas ao acessar a configuração "Reduzir movimento". (I01e2c)
- Implementamos a pré-busca para
TransformingLazyColumn
e reduzir a instabilidade (Icca88).
Versão 1.5.0-alpha09
29 de janeiro de 2025
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha09
. A versão 1.5.0-alpha09 contém estas confirmações.
Mudanças na API
- No
CurvedTextStyle
, dividimos o espaçamento entre letras em sentido horário e anti-horário. Isso é necessário porque as letras no sentido horário se abrem a partir da linha de base, enquanto as letras no sentido anti-horário se abrem para dentro. Por isso, é necessário um espaçamento maior entre letras. (I4b848) - O
CompositionLocal
LocalReduceMotion
foi simplificado para retornar um booleano em vez de um objetoReduceMotion
. O uso da interfaceReduceMotion
foi descontinuado. Invocações anteriores, comoLocalReduceMotion.current.enabled()
, podem ser substituídas porLocalReduceMotion.current
(I4937f). - Em
PagerDefaults
,snapAnimationSpec
foi renomeado comoSnapAnimationSpec
. (I20c9a).
Versão 1.5.0-alpha08
15 de janeiro de 2025
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha08
. A versão 1.5.0-alpha08 contém estas confirmações.
Mudanças na API
- Atualizamos todas as bibliotecas do Wear Compose para o modo "API explícita". (Iebf9f)
- Fizemos com que o parâmetro de animação de ajuste do pager fizesse parte de
PagerDefaults
. (Ifff64). - Adicionamos um parâmetro de deslocamento a
SwipeToDismissBoxState
. (I586bd).
Correções de bugs
- Agora, a resposta tátil da plataforma giratória é chamada para versões do Wear OS após V (Idb03e)
Versão 1.5.0-alpha07
11 de dezembro de 2024
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha07
. A versão 1.5.0-alpha07 contém estas confirmações.
Mudanças na API
- O
TransformingLazyColumnState
agora oferece uma maneira de observar o progresso atual da rolagem com base nos índices de itens de ancoragem. (I72b01) - Adicionamos animações a
TransformingLazyColumn
ao adicionar, remover e mover itens, se eles tiverem o novoModifier.animateItem
. (Iecb9c). TransformingLazyColumn
agora expõe valores parabeforeContentPadding
eafterContentPadding
. (Iccd5f).- O
TransformingLazyColumn
agora fornece o local de composiçãoLocalTransformingLazyColumnItemScope
, que componentes (comoCard
s eButton
s no Material3) podem usar para se transformar automaticamente quando colocados dentro de umTransformingLazyColumn
. Os autores das chamadas podem desativar a transformação automática usando o novo wrapperTransformExclusion
. (I1652f)
Correções de bugs
- Atualizamos as velocidades mínimas e máximas de deslize para rotação em dispositivos destinados ao Android U e versões mais recentes. (I33559).
- Correção de uma falha que ocorria se um item em
TransformingLazyColumn
não continha elementos combináveis (Idb99d). - Adicionamos suporte a
ScrollFeedbackProvider
para háptica rotativa no Android Vanilla ice cream. (Ibc553) - Aplicamos um aumento na tolerância ao toque ao usar
SwipeToReveal
para reduzir as chances de acionar acidentalmente um deslize ao rolar verticalmente. (Ic0672). - Atualizamos
SwipeDismissableNavHost
para usarPredictiveBackHandler
quando disponível com a API 35 e versões mais recentes. Nesse caso, novas animações serão aplicadas. (I08c11).
Versão 1.5.0-alpha06
13 de novembro de 2024
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha06
. A versão 1.5.0-alpha06 contém estas confirmações.
Mudanças na API
- Simplificamos o
ScrollInfoProvider
paraPagerState
removendo o parâmetroorientation
, que não é mais necessário. O novo comportamento é queTimeText
permaneça no lugar para paginação horizontal e vertical. (I71767). TransformingLazyColumn
foi introduzido em versões anteriores. Agora estamos removendo os aliasesLazyColumn
do Wear (que estavam encaminhando paraTransformingLazyColumn
) em favor do novo nomeTransformingLazyColumn
. Também removemos a propriedadeheight
deTransformingLazyColumnVisibleItemInfo
. UsemeasuredHeight
. (I0ea1e).- Mudamos a
PagerDefaults.snapFlingBehavior
snapAnimationSpec
de uma especificaçãoTween
para umaSpring
.(I10d02, b/349781047, b/303807950) - Promovemos o
LocalReduceMotion
CompositionLocal
para estável (Ia6f32).
Correções de bugs
- Atualizamos o
Modifier.rotaryScrollable
para usar ofocusTargetWithSemantics
e melhorar a compatibilidade semântica no modo rotativo. (Ief0a0) - Atualizamos a dependência mínima da API para 1.7.4 nas bibliotecas do Compose. (I88b46)
- Desativamos a transformação de largura em
TransformingLazyColumn
como solução alternativa para um bug de corte. (I3dfb8). - Correção de um bug que fazia com que os itens desaparecessem após o overscroll com
TransformingLazyColumn
(Id7668). - Adicionamos
LazyLayoutSemantics
paraTransformingLazyColumn
. (Ia8f56).
Versão 1.5.0-alpha05
30 de outubro de 2024
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha05
. A versão 1.5.0-alpha05 contém estas confirmações.
Mudanças na API
- Adicionamos suporte para
animateScrollTo
emTransformingLazyColumnState
para que a rolagem até um item possa ser animada. (I4097d). - Adicionamos
requestScrollTo
emTransformingLazyColumnState
para adiar a rolagem até a próxima medição. (I20a5e) - Adicionamos suporte para
contentPadding
emTransformingLazyColumn
. (I3a69c).
Correções de bugs
- Corrigimos um bug na renderização do
TransformingLazyColumn
quando a altura do conteúdo é menor do que a altura da tela. (I6c3e1). - O
ScrollInfoProvder
paraTransformingLazyColumn
agora rastreia corretamente o primeiro item. (I1e4a3). TransformingLazyColumnState
agora salva o estado (anchorItemIndex
eanchorItemScrollOffset
). (I3d265)
Versão 1.5.0-alpha04
16 de outubro de 2024
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha04
. A versão 1.5.0-alpha04 contém estas confirmações.
Mudanças na API
- Renomeamos a Wear Compose Foundation
LazyColumn
comoTransformingLazyColumn
para que a distinção entre ela e a Compose FoundationLazyColumn
fique mais clara. (I0608b). - Adição de suporte rotativo para paginadores horizontais/verticais, permitindo que os usuários naveguem pelos paginadores usando dispositivos de entrada rotativos. (I9770d).
- Atualizamos o novo
PagerDefaults
para deixar claro que o pager vai ajustar a página por padrão. (Iff7d0). TransformingLazyColumnItemScrollProgress
agora é uma classe de valor que deve melhorar a performance. (Ic399e)- O
TransformingLazyColumn
agora oferece suporte a rotação por padrão. (I05206). - O
TransformingLazyColumnState
agora é compatível comscrollToItem
. (I507b3) @ExperimentalWearFoundationApi
foi removida da APISwipeToReveal
(I34a66).
Versão 1.5.0-alpha03
2 de outubro de 2024
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha03
. A versão 1.5.0-alpha03 contém estas confirmações.
Mudanças na API
- Adicionamos suporte a deslizar bidirecional no
SwipeToReveal
para casos raros em que a tela atual não é compatível com o gesto de deslizar para dispensar. . O padrão ainda é deslizar para revelar apenas em gestos da direita para a esquerda. É altamente recomendável respeitar o comportamento padrão para evitar conflitos com o gesto de deslizar para dispensar. (Ifac04). - Atualizamos
LazyColumnState
para substituircanScrollForward
ecanScrollBackward
. Agora, a rolagem para quando o primeiro ou o último item está exatamente no centro da tela. (Ia77d7). - Adicionamos novos componentes
HorizontalPager
eVerticalPager
que resolvem problemas comuns, como o processamento de foco e a interação com o gesto de deslizar para dispensar do sistema, que podem ocorrer no Wear. (I2902b). - Adicionamos suporte para
LazyColumn
expor okey
e ocontentType
do cliente usandolayoutItems
. (I1bd9c).
Correções de bugs
- Atualizamos as animações de texto curvo para que fiquem mais suaves, usando flags de pintura. (I73a15).
- Atualizamos a documentação da caixa de diálogo do Material para refletir que
onDismissRequest
não é chamado depois que a flag "show" é definida como "false". (Ifd8d6). - Correção de um bug na animação da vinheta na caixa de diálogo do Material Design (I126bf).
Versão 1.5.0-alpha02
18 de setembro de 2024
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha02
. A versão 1.5.0-alpha02 contém estas confirmações.
Mudanças na API
- Adicionamos suporte ao
LazyColumn
do Wear Compose com nossoScreenScaffold
e uma implementação deScrollInfoProvider
paraLazyColumnState
. (Ib8d29) - Adicionamos
viewportSize
aLazyColumnLayoutInfo
. (I4187f)
Correções de bugs
- Corrigimos um bug para que a rolagem rotativa seja desativada no
ScalingLazyColumn
quando a flaguserScrollEnabled
estiver definida comofalse
. (I490ab, b/360295825) - Fizemos uma correção de bug para resolver o padding vertical inesperado em texto curvo. A altura do texto curvo agora corresponde mais ao espaço real usado pelo texto. Isso provavelmente vai interromper os testes de captura de tela que envolvem texto curvo (Iaa6ef).
- Revertemos uma correção de bug para
Dialog
em que o callbackonDismissRequest
era chamado quandoshowDialog
era definido como "false", porque, em alguns casos, isso resultava na chamada deonDismissRequest
várias vezes. (I64656).
Versão 1.5.0-alpha01
4 de setembro de 2024
Lançamento de androidx.wear.compose:compose-*:1.5.0-alpha01
. A versão 1.5.0-alpha01 contém estas confirmações.
Mudanças na API
- Adicionamos um novo
LazyColumn
à biblioteca Wear Compose Foundation com APIsLazyColumnState
eLazyColumnScope
associadas. Isso serve como base para criar efeitos de escalonamento e transformação personalizáveis com o Wear Compose. (Ib3b22). - Adicionamos uma versão indexada de
itemsIndexed
emLazyColumnScope
como parte da nova APILazyColumn
. (Ib4a57). - Adicionamos modificadores
LazyColumn
para oferecer suporte a comportamentos de escalonamento e transformação. (Ie229a) - A versão
HierarchicalFocusCoordinator
foi promovida a estável. (I31035) - Adicionamos suporte ao espaçamento entre letras em texto curvo. (I3c740).
- Adicionamos um parâmetro
rotationLocked
aCurvedLayout.curvedComposable
para impedir que os componentes sejam girados. (I66898). - A API temporária
LocalUseFallbackRippleImplementation
do wear material e do wear material3 foi removida (I62282). - A
WearDevices.SQUARE
foi removida da visualização múltipla@WearPreviewDevices
(I11c02).
Correções de bugs
- O
SwipeToReveal
agora posiciona os itens revelados na parte visível da tela. Isso ajuda quando oSwipeToReveal
é usado em uma lista, para que os itens estejam sempre interativos e nunca saiam da tela. (I38929). - Agora,
SwipeToReveal
redefine olastActionType
como "None" quandoanimatedTo
é concluído. (I59b03). - Melhoramos a documentação do novo parâmetro
rotationLocked
emcurvedComposable
. (Ifbd57). - Correção de uma falha ao transmitir
NaN
para operformFling
deScalingLazyColumnSnapFlingBehavior
. (Ic13da). - Correção de bug no modificador de tamanho de layout curvo (I0fedf).
- Adicionamos suporte para espaçamento entre letras especificado em "sp". (I9f6e3).
- Correção de um bug na caixa de diálogo do Material2 em que o callback
onDismissRequest
não era chamado quando a caixa de diálogo ficava invisível (I64656). - O
LayoutCoordinates.introducesFrameOfReference
foi renomeado comoLayoutCoordinates.introducesMotionFrameOfReference
para refletir melhor a finalidade dele. Renomeou a função relacionada para calcular coordenadas com base nessa flag. (I3a330).
Versão 1.4
Versão 1.4.1
12 de fevereiro de 2025
Lançamento de androidx.wear.compose:compose-*:1.4.1
. A versão 1.4.1 contém estas confirmações.
Correções de bugs
- Protegemos contra uma falha ao acessar a configuração global "Reduzir movimento", que era acionada em algumas plataformas em que essa configuração não era fornecida. (I01e2c)
Versão 1.4.0
4 de setembro de 2024
Lançamento de androidx.wear.compose:compose-*:1.4.0
. A versão 1.4.0 contém estas confirmações.
Mudanças importantes desde a versão 1.3.0
ScalingLazyColumn
ePicker
agora oferecem suporte à entrada rotativa por padrão. Recomendamos remover o processamento rotativo explícito e adiar para o comportamento padrão do sistema. Se necessário, use o parâmetrorotaryScrollableBehavior
para configurar o comportamento de rolagem ou ajuste. Para o comportamento de ajuste, é recomendável fornecer recursos de rolagem por toque e ajuste usando o parâmetroflingBehavior
.Modifier.rotaryScrollable
é um novo modificador que conecta eventos rotativos a contêineres roláveis, permitindo que os usuários rolem usando uma coroa ou uma borda giratória no dispositivo Wear OS.- O
SwipeDismissableNavHost
agora oferece uma animação de entrada para transições no app. - Agora,
PositionIndicator
é mostrado por padrão quando uma tela é exibida pela primeira vez.
Outras mudanças
- Para um conjunto mais completo das mudanças introduzidas na versão 1.3.0, consulte as notas da versão beta01.
Versão 1.4.0-rc01
21 de agosto de 2024
Lançamento de androidx.wear.compose:compose-*:1.4.0-rc01
. A versão 1.4.0-rc01 contém estas confirmações.
- Atualizamos as dependências do Compose para 1.7.0-rc01 e fixamos a navegação do Wear Compose em androidx.lifecycle 2.8.3.
Versão 1.4.0-beta03
12 de junho de 2024
Lançamento de androidx.wear.compose:compose-*:1.4.0-beta03
. A versão 1.4.0-beta03 contém estas confirmações.
Correções de bugs
- Atualizamos
Modifier.rotaryScrollable
para substituir o uso de "focusable" por "focusTarget", o que melhora a performance. (Id294b). - Corrigimos um problema em que o
ProgressIndicator
repetia o anúncio emTalkBack
. (I94563) - Atualizamos os perfis de referência da biblioteca Wear Compose. (I3cbc3).
Versão 1.4.0-beta02
29 de maio de 2024
Lançamento de androidx.wear.compose:compose-*:1.4.0-beta02
. A versão 1.4.0-beta02 contém estas confirmações.
Correções de bugs
- Aumentamos a largura da borda transmitida aos leitores de tela do texto curvo para resolver problemas de truncamento (Id865f).
- Restringimos o limite do
HorizontalPageIndicator
transmitido aos leitores de tela. Antes, o indicador ocupava a tela inteira (Id8d7a).
Versão 1.4.0-beta01
14 de maio de 2024
Lançamento de androidx.wear.compose:compose-*:1.4.0-beta01
. A versão 1.4.0-beta01 contém estas confirmações.
A versão 1.4-beta01 do Compose para Wear OS indica que esta versão da biblioteca está com todos os recursos e a API está bloqueada (exceto quando marcada como experimental). O Wear Compose 1.4 inclui as seguintes novas funcionalidades:
- Adicionamos o
Modifier.rotaryScrollable
, um novo modificador que conecta eventos rotativos a contêineres roláveis, permitindo que os usuários rolem usando uma coroa ou uma borda giratória no dispositivo Wear OS. Além disso,ScalingLazyColumn
ePicker
agora oferecem suporte à entrada rotativa por padrão. Use o parâmetrorotaryScrollableBehavior
para configurar o comportamento de rolagem ou ajuste. Para o comportamento de ajuste, é recomendável fornecer o ajuste usando o parâmetroflingBehavior
também para rolagem por toque. - O
SwipeDismissableNavHost
agora oferece uma animação de entrada para transições no app. - Agora,
PositionIndicator
é mostrado por padrão quando uma tela é exibida pela primeira vez. SelectableChip
eSplitSelectableChip
foram adicionados como uma variação deToggleChip
. Use isso comRadioButton
para fornecer semântica selecionável em vez de semântica alternável para acessibilidade.- O
ListHeader
agora oferece suporte a ajustes de altura quando o conteúdo precisa de mais espaço para acomodar tamanhos de fonte grandes.
Correções de bugs
- Corrigimos um bug em que chips selecionáveis anunciavam o toque duplo para alternar quando já estavam selecionados. (I7ed88)
Versão 1.4.0-alpha08
1º de maio de 2024
Lançamento de androidx.wear.compose:compose-*:1.4.0-alpha08
. A versão 1.4.0-alpha08 contém estas confirmações.
Mudanças na API
- Fizemos as seguintes mudanças na nova API rotativa: renomeamos
Modifier.rotary
paraModifier.rotaryScrollable
; renomeamos a interfaceRotaryBehavior
paraRotaryScrollableBehavior
e a funçãohandleScrollEvent
paraperformScroll
; renomeamosRotaryScrollableAdapter
paraRotaryScrollableLayoutInfoProvider
e removemos a propriedadescrollableState
. (I0c8a6). - Fizemos outras mudanças na API rotativa: renomeamos
RotaryScrollableLayoutInfoProvider
paraRotarySnapLayoutInfoProvider
(porque esse provedor só é necessário para rotação com ajuste); mudamos o tipo do parâmetrosnapOffset
emRotaryScrollableDefaults.snapBehavior snapOffset
de Int para Dp. (Iddebe) - Renomeamos o parâmetro
clickInteractionSource
emSplitSelectableChip
comocontainerInteractionSource
. (Ia8f84). - Atualizamos os nomes dos parâmetros de callback de clique para
SplitSelectableChip
: deonClick
paraonSelectionClick
e deonBodyClick
paraonContainerClick
. (I32237)
Correções de bugs
- Atualizamos o padding horizontal para
PositionIndicator
para 2 dp (era 5 dp) para corrigir um bug em que oPositionIndicator
(barra de rolagem) se sobrepõe ao conteúdo rolável. Essa mudança deve quebrar as capturas de tela atuais que incluem oPositionIndicator
devido à mudança de padding. (I57472). - Melhoramos a documentação da nova API rotativa descrevendo as diferenças entre dispositivos rotativos de baixa e alta resolução. (I63abe)
- Corrigimos uma exceção fora do intervalo em
SwipeDismissableNavHost
que poderia ser acionada quando os valores Alfa interpolados eram menores que zero. (Ib75a1, b/335782510).
Versão 1.4.0-alpha07
17 de abril de 2024
Lançamento de androidx.wear.compose:compose-*:1.4.0-alpha07
. A versão 1.4.0-alpha07 contém estas confirmações.
Mudanças na API
- Adicionamos o
Modifier.rotary
, um novo modificador que conecta eventos rotativos a contêineres roláveis, permitindo que os usuários rolem usando uma coroa ou uma borda giratória no dispositivo Wear OS. Além disso, oScalingLazyColumn
e o Picker agora oferecem suporte à entrada rotativa por padrão, com novas sobrecargas que incluem o parâmetrorotaryBehavior
para especificar a configuração de rolagem ou ajuste. Se o parâmetrorotaryBehavior
estiver definido como "snap", é recomendável fornecer o ajuste pelo parâmetroflingBehavior
também, para rolagem por toque. (I2ef6f). - As fontes
NestedScroll
Drag e Fling estão sendo substituídas porUserInput
eSideEffect
para acomodar a definição estendida dessas fontes, que agora incluem animações (Side Effect) e roda do mouse e teclado (UserInput). (I40579) - Adicionamos
SelectableChip
eSplitSelectableChip
para deixar mais clara a distinção entre controles de alternância, comoSwitch/Checkbox
, e controles selecionáveis, comoRadioButton
. Isso substitui as sobrecargas adicionadas anteriormente deToggleChip/SplitToggleChip
com parâmetrosselectionControl
. (Ia0217) - O modificador de visibilidade de
IndeterminateStrokeWidth
emProgressIndicatorDefaults
foi atualizado para público. (I5b5a4).
Versão 1.4.0-alpha06
3 de abril de 2024
Lançamento de androidx.wear.compose:compose-*:1.4.0-alpha06
. A versão 1.4.0-alpha06 contém estas confirmações.
Correções de bugs
- Adicionamos um rascunho interno de suporte a rotação como parte do esforço maior de migrar o comportamento de rotação do Horologist para o AndroidX. (I617d1).
- Adicionamos um rascunho interno de suporte a hápticos como parte do esforço maior de migrar o comportamento de rotação do Horologist para o AndroidX. (I5568a).
Versão 1.4.0-alpha05
20 de março de 2024
Lançamento de androidx.wear.compose:compose-*:1.4.0-alpha05
. A versão 1.4.0-alpha05 contém estas confirmações.
Mudanças na API
- Tornamos públicas as propriedades
initialCenterItemIndex
einitialCenterItemScrollOffset
deScalingLazyListState
. (I0c616). - Tornamos o
FullScreenStrokeWidth
deProgressIndicatorDefaults
público. (Ibea23)
Correções de bugs
- Melhoramos a performance do
PositionIndicator
ao diminuir o número de chamadas paralayoutInfo
deScalingLazyColumn
. (Idc83d).
Versão 1.4.0-alpha04
6 de março de 2024
Lançamento de androidx.wear.compose:compose-*:1.4.0-alpha04
. A versão 1.4.0-alpha04 contém estas confirmações.
Mudanças na API
- Adicionamos uma nova sobrecarga para
ToggleChip
eSplitToggleChip
que usa um parâmetroselectionControl
em vez do parâmetrotoggleControl
. Isso deve ser usado com o controleRadioButton
para fornecer semântica selecionável em vez de semântica alternável para acessibilidade (I1d6d9). - Atualizamos os nomes dos parâmetros para a nova sobrecarga
selectionControl
deonSelected
paraonSelect
emToggleChip
eSplitToggleChip
(I1a971).
Versão 1.4.0-alpha03
21 de fevereiro de 2024
Lançamento de androidx.wear.compose:compose-*:1.4.0-alpha03
. A versão 1.4.0-alpha03 contém estas confirmações.
Mudanças na API
- O wrapper
Modifier.inspectable
foi descontinuado. Essa API cria mais invalidações do modificador do que o necessário. Por isso, o uso dela não é mais recomendado. Recomendamos que os desenvolvedores implementem o métodoinspectableProperties()
emModifierNodeElement
se quiserem expor propriedades de modificador a ferramentas. (Ib3236).
Correções de bugs
- Corrigimos um bug na documentação das anotações
WearPreview*
. (Id526d).
Versão 1.4.0-alpha02
7 de fevereiro de 2024
Lançamento de androidx.wear.compose:compose-*:1.4.0-alpha02
. A versão 1.4.0-alpha02 contém estas confirmações.
Correções de bugs
- Corrigimos um bug no recurso de deslizar para revelar, em que era possível interagir com (e cancelar) uma ação confirmada em um item ao começar a deslizar outro item.(Ide059)
- Atualizamos o
ListHeader
para oferecer suporte a ajustes de altura quando o conteúdo precisa de mais espaço para acomodar tamanhos de fonte grandes. (I7290c, b/251166127).
Versão 1.4.0-alpha01
24 de janeiro de 2024
Lançamento de androidx.wear.compose:compose-*:1.4.0-alpha01
. A versão 1.4.0-alpha01 contém estas confirmações.
Novos recursos
- Adicionamos animação de entrada a
SwipeDismissableNavHost
para transições no app.(cfeb79a) - Agora,
PositionIndicator
é mostrado por padrão quando uma tela é exibida pela primeira vez. Essa mudança foi introduzida para ajudar a atender às diretrizes de qualidade do Wear. Isso significa que os testes de capturas de tela precisam ser atualizados em telas que incluemPositionIndicator
, já quePositionIndicator
não era exibido antes. (419cef7)
Mudanças na API
- Adicionamos uma nova API de efeito ripple nas bibliotecas
wear:compose-material
ewear:compose-material3
, que substitui arememberRipple
descontinuada. Também adiciona umCompositionLocal
temporário,LocalUseFallbackRippleImplementation
, para reverter os componentes do Material para usar as APIsrememberRipple/RippleTheme
descontinuadas. Isso será removido na próxima versão estável e destina-se apenas a ser uma ajuda temporária de migração para casos em que você está fornecendo umRippleTheme
personalizado. Consulte developer.android.com para informações sobre migração e mais informações contextuais sobre essa mudança. (af92b21) - Atualizamos
ColorScheme
para ser imutável, o que torna as atualizações de cores individuais menos eficientes, mas o uso mais comum de cores mais eficiente. O motivo dessa mudança é que a maioria dos apps não teria a atualização de cores individuais como um caso de uso principal. Isso ainda é possível, mas vai recompor mais do que antes. Assim, diminuímos significativamente a quantidade de assinaturas de estado em todo o código material e afetamos o custo de inicialização e de tempo de execução de casos de uso mais padrão. (f5c48b7) - Os componentes do Wear Material e do Wear Material 3 que expõem um
MutableInteractionSource
na API foram atualizados para expor umMutableInteractionSource
anulável que tem como padrão o valor nulo. Não há mudanças semânticas aqui: transmitir nulo significa que você não quer elevar oMutableInteractionSource
, e ele será criado dentro do componente, se necessário. A mudança para nulo permite que alguns componentes nunca aloquem umMutableInteractionSource
e que outros componentes só criem uma instância quando necessário, o que melhora o desempenho desses componentes. Se você não estiver usando oMutableInteractionSource
transmitido a esses componentes, recomendamos transmitir "null". Também é recomendável fazer mudanças semelhantes nos seus próprios componentes. (f8fa920) - Atualizamos
rememberExpandableState
para salvar o estado expansível. Isso garante que os dados sejam armazenados ao navegar para outra tela e restaurados ao voltar para a tela original. (5c80095)
Correções de bugs
- Atualizamos a configuração
ReduceMotion
para usar um listener compatível com o ciclo de vida. (7c6b122) - Atualizamos o listener de
TouchExplorationStateProvider
para reconhecer o ciclo de vida (be28b01). - Removemos a camada materialcore para
CompactButton
e melhorar o desempenho (25db8e9) - Tornamos o
BasicSwipeToDismissBox
mais robusto para evitar exceções de deslocamentos NaN (b983739). - Atualizamos
BasicSwipeToDismissBox
para garantir que os valores alfa estejam no intervalo 0,1. - Corrigimos um bug nos
ToggleButton
,SplitToggleButton
,Checkbox
,Switch
eRadioButton
para que os anúncios de acessibilidade não sejam repetidos. Antes, os papéis semânticos eram duplicados (d11eeb7).
Versão 1.3
Versão 1.3.1
3 de abril de 2024
Lançamento de androidx.wear.compose:compose-*:1.3.1
. A versão 1.3.1 contém estas confirmações.
Correções de bugs
- Corrigimos um bug no recurso de deslizar para revelar, em que era possível interagir com (e cancelar) uma ação confirmada em um item ao começar a deslizar outro item. (Ide059).
Versão 1.3.0
24 de janeiro de 2024
Lançamento de androidx.wear.compose:compose-*:1.3.0
. A versão 1.3.0 contém estas confirmações.
Mudanças importantes desde a versão 1.2.0
- A classe
SwipeToDismissBoxState
, a enumeraçãoSwipeToDismissValue
e a função de extensãoModifier.edgeSwipeToDismiss
agora fazem parte do pacoteandroidx.wear.compose.foundation
, em vez do pacoteandroidx.wear.compose.material
. Essa arquitetura atualizada permite implementar o processamento de gestos de forma independente de outras considerações de design. Os fluxos de trabalho do Material Design, como a aplicação de cores de um tema configurado, são processados separadamente. - As classes
SwipeToRevealCard
eSwipeToRevealChip
ajudam a implementar orecommended swipe-to-reveal guidance
. A classeSwipeToRevealSample
demonstra como usar esses componentes. A versão 1.3.0-alpha02 introduziu uma mudança que faz com que os objetos
Chip
eToggleChip
aumentem de altura para oferecer melhor suporte ao escalonamento de fonte selecionado pelo usuário. Isso pode causar cortes. Para corrigir esse problema, a formalarge
paraMaterialTheme
agora usa um raio de canto maior (26 dp em vez de 24 dp). Os objetosChip
eToggleChip
usam esse novo raio de canto para evitar o corte do conteúdo nos cantos do chip e doToggleChip
.- A maioria dos
Chips
eToggleChips
não muda, já que a altura padrão é de 52 dp. No entanto, objetosChip
eToggleChip
que contêm várias linhas de texto de rótulo principal ou secundário ou cuja altura foi substituída podem fazer com que os testes de captura de tela falhem.
- A maioria dos
Outras mudanças
Para um conjunto mais completo das mudanças introduzidas na versão 1.3.0, consulte as notas da versão beta01.
Recomendações para implementação
- Se o app permitir que os usuários movam o conteúdo da tela, como em um app baseado em mapas, desative o processamento de deslizes definindo
userSwipeEnabled
comofalse
no elemento combinávelSwipeDismissableNavHost
e inclua um botão que permita aos usuários acessar a tela anterior. - Para desativar as animações de um indicador de posição durante animações de entrada e mudança de posição em uma lista de rolagem, use um objeto
SnapSpec
. - Enquanto espera um app de mídia carregar o conteúdo para reprodução, mostre um elemento combinável
Placeholder
em branco. - Para criar uma coleção de itens expansíveis sob demanda, use a classe experimental
ExpandableStateMapping
.
Versão 1.3.0-rc01
10 de janeiro de 2024
Lançamento de androidx.wear.compose:compose-*:1.3.0-rc01
. A versão 1.3.0-rc01 contém estas confirmações.
Correções de bugs
-
Atualizamos a forma grande
MaterialTheme
para usar um raio de canto arredondado de 26 dp, que agora será usado pelo Chip e peloToggleChip
. Essa mudança é necessária para oferecer suporte a ajustes de altura quando o conteúdo precisa de mais espaço para acomodar tamanhos de fonte grandes. Caso contrário, o formato de estádio atual corta parte do conteúdo de texto.Figura 1: texto cortado nos cantos. Figura 2: texto não cortado. Essa mudança pode causar uma falha nos testes de captura de tela. (I2e6ae).
Versão 1.3.0-beta02
13 de dezembro de 2023
Lançamento de androidx.wear.compose:compose-*:1.3.0-beta02
. A versão 1.3.0-beta02 contém estas confirmações.
Correções de bugs
- Restauramos o movimento de deslizar pretendido em
BasicSwipeToDismissBox
. Isso foi alterado em uma versão anterior, de modo que a parte de deslizar da transição ocorria enquanto o dedo estava tocando a tela. (Id8e76).
Versão 1.3.0-beta01
15 de novembro de 2023
Lançamento de androidx.wear.compose:compose-*:1.3.0-beta01
. A versão 1.3.0-beta01 contém estas confirmações.
A versão 1.3-beta01 do Compose para Wear OS indica que esta versão da biblioteca está com todos os recursos e a API está bloqueada (exceto onde marcado como experimental). O Wear Compose 1.3 inclui as seguintes novas funcionalidades:
SwipeToDismissBoxState
,SwipeToDismissValue
eModifier.edgeSwipeToDismiss
foram migrados deandroidx.wear.compose.material
paraandroidx.wear.compose.foundation
, assim como a implementação de deslizar para dispensar emBasicSwipeToDismissBox
. Isso permite que o processamento de gestos para deslizar para dispensar seja usado de forma independente do Material Design, por exemplo, doSwipeDismissableNavHost
emandroidx.wear.compose.navigation
. Ainda é recomendável usarSwipeToDismissBox
deandroidx.wear.compose.material
com o Material Design, porque ele extrai cores doMaterialTheme
e delega a implementação restante aoBasicSwipeToDismissBox
.SwipeDismissableNavHost
agora oferece suporte a um novo parâmetrouserSwipeEnabled
para que o processamento de deslizar possa ser desativado em telas em que não é necessário.- O
BasicSwipeToDismissBox
melhorou o processamento de foco usandoHierarchicalFocusCoordinator
. - O
SwipeToReveal
tem novos elementos combináveisSwipeToRevealCard
eSwipeToRevealChip
no Material que seguem a orientação de UX recomendada paraCard
eChip
. Ele também oferece suporte para desfazer a ação secundária. DefaultTextStyle
agora desativa o padding da fonte para manter a consistência em toda a plataforma Android.Chip
eToggleChip
agora ajustam a altura para acomodar conteúdo que cresceu devido a fontes grandes para acessibilidade- O
PositionIndicator
agora tem especificações de animação individuais para as animações de entrada, saída e mudança de posição. Por motivos de desempenho, recomendamos que o efeito de entrada e a mudança de posição sejam desativados quando usados com listas roláveis. - O
ExpandableStateMapping
oferece uma nova maneira de gerarExpandableStates
quando eles precisam ser criados sob demanda e não necessariamente com um escopo@Composable
. - O
Placeholder
agora permite a redefinição se o conteúdo não estiver mais no estado pronto. Além disso, a configuração de redução de movimento agora se aplica ao efeito de brilho e ao movimento de limpeza noPlaceholder
.
Problemas conhecidos
PositionIndicator
não é mostrado inicialmente quando uma tela é exibida pela primeira vez. Vamos fazer uma mudança em uma versão Alfa 1.4 inicial para que ela seja mostrada, mas sem animação.
Mudanças na API
- Renomeamos o nível básico
SwipeToDismissBox
comoBasicSwipeToDismissBox
. Isso torna mais clara a distinção entre o componente de nível básico e oSwipeToDismissBox
de nível do Material. O último extrai cores doMaterialTheme
para serem usadas em scrims e delega a implementação restante aoBasicSwipeToDismissBox
. (Ibecfc). - Marcamos
rememberExpandableStateMapping
como experimental e melhoramos a performance deexpandableItem
. (I5f6bc) - Substituímos a classe
SwipeToRevealAction
nas APIs Card e Chip do MaterialSwipeToReveal
por uma API baseada em slots usando elementos combináveisSwipeToRevealPrimaryAction
,SwipeToRevealSecondaryAction
eSwipeToRevealUndoAction
. Consulte o exemplo de código para ver exemplos de como usar a nova API. (Ia8943). - Substituímos as flags de animação
PositionIndicator
por parâmetrosAnimationSpec
. As animações individuais podem ser desativadas transmitindosnap
comoAnimationSpec
. (I6c523).
Correções de bugs
- Corrigimos um bug causado por texto curvo limitado quando o tamanho é limitado (I50efe)
- Resolvemos uma possível falha de NaN relacionada a
curvedComposable
(I970eb). - Revertemos a remoção da animação de destaque da mudança de posição em
PositionIndicator
. (Ieb424) - Removemos a camada material-core do Chip material para melhorar a performance dele. (If2dcb).
Versão 1.3.0-alpha08
18 de outubro de 2023
Lançamento de androidx.wear.compose:compose-*:1.3.0-alpha08
. A versão 1.3.0-alpha08 contém estas confirmações.
Mudanças na API
- Adicionamos flags individuais a sobrecargas de
PositionIndicator
para controlar diferentes animações:showFadeInAnimation
,showFadeOutAnimation
eshowPositionAnimation
. A API anterior foi descontinuada e encaminha chamadas para a nova. Por motivos de desempenho e consistência da UX, quando oPositionIndicator
é usado com uma lista rolável, recomendamos desativar as flagsshowFadeInAnimation
eshowPositionAnimation
. SePositionIndicator
for usado como um indicador independente, por exemplo, para mudança de volume, recomendamos que as três animações estejam ativadas. (I44294). - Descontinuamos o Material
SwipeToDismissBoxState
,SwipeToDismissValue
eedgeSwipeToDismiss
após a migração da funcionalidade de deslizar para dispensar parawear.compose.foundation
. Substitua pelos equivalenteswear.compose.foundation
. (Iee8c9).
Correções de bugs
- Atualizamos os perfis de referência para as bibliotecas Wear Compose Foundation, Material e Navigation. (Idb060).
- Revertemos uma mudança de comportamento para
PositionIndicator
introduzida em um CL anterior, de modo que oPositionIndicator
era animado quando uma tela era exibida inicialmente. Pretendemos fazer uma mudança semelhante em uma versão Alfa 1.4 inicial para que oPositionIndicator
seja exibido inicialmente, mas sem animação. (I41843). - Corrigimos alguns problemas de desempenho no
PositionIndicator
. (I1c654, b/302399827) - O desempenho da implementação padrão do provedor de estado de análise por toque foi otimizado para depender de
State<Boolean>
em vez de estado derivado. (Ieec4d) - Definimos retângulos
systemGestureExclusion
para o Android 13 e versões mais recentes. (Ib1f4b).
Versão 1.3.0-alpha07
4 de outubro de 2023
Lançamento de androidx.wear.compose:compose-*:1.3.0-alpha07
. A versão 1.3.0-alpha07 contém estas confirmações.
Mudanças na API
- Adicionamos flags individuais a
PositionIndicator
para controlar diferentes animações:showFadeInAnimation
,showFadeOutAnimation
eshowPositionAnimation
. A API anterior foi descontinuada e encaminha chamadas para a nova. Por motivos de desempenho e consistência da UX, quando oPositionIndicator
é usado com uma lista rolável, recomendamos desativar as flagsshowFadeInAnimation
eshowPositionAnimation
. SePositionIndicator
for usado como um indicador independente, por exemplo, para mudança de volume, recomendamos que as três animações estejam ativadas. (Ia2d63).
Correções de bugs
- Melhoramos o movimento de deslizar para revelar adicionando uma animação de fade-in ao texto da ação principal e um efeito de fade-out à ação secundária/mudando a escala do ícone na expansão total do deslizar. (Ib7223).
- Recomendamos que as ações de deslizar para revelar sejam acessíveis. Por isso, adicionamos ações de acessibilidade personalizadas aos nossos exemplos de deslizar para revelar. (I42224)
- Melhoramos o desempenho de
SwipeToDismissBox
, incluindo a refatoração para garantir que a lógica inicial não acione uma recomposição. OSwipeToDismissBox
agora é desenhado como o tamanho da tela inteira. (Ie0aa2). - Corrigimos um bug em que o
PositionIndicator
desaparecia incorretamente. (I2091a) - Melhoria na performance do
PositionIndicator
com a otimização das recomposições. Novas flags para controlar as animações (fadeIn
,fadeOut
epositionChange
) foram adicionadas posteriormente. Consulte "Mudanças na API" (Ifac7d). - Adicionamos testes de microbenchmark para
PositionIndicator
(Idf875).
Versão 1.3.0-alpha06
20 de setembro de 2023
Lançamento de androidx.wear.compose:compose-*:1.3.0-alpha06
. A versão 1.3.0-alpha06 contém estas confirmações.
Correções de bugs
- Adicionamos suporte para
Modifier.edgeSwipeToDismiss
comSwipeToReveal
. (I95774, b/293444286) - Adicionamos exemplos para
SwipeToRevealChip
eSwipeToRevealCard
do Material. (Ieb974). - Atualizamos os perfis de referência para as bibliotecas Wear Compose Foundation e Material. (I1dd1f).
Versão 1.3.0-alpha05
6 de setembro de 2023
Lançamento de androidx.wear.compose:compose-*:1.3.0-alpha05
. A versão 1.3.0-alpha05 contém essas confirmações.
Correções de bugs
- Adicionamos o processamento em "Deslizar para revelar" para que apenas um item por vez possa ser deslizado. (I3cd7a).
- Melhoramos a documentação de
ScalingLazyColumnDefaults
para corresponder melhor ao comportamento real. (I886d3)
Versão 1.3.0-alpha04
23 de agosto de 2023
Lançamento de androidx.wear.compose:compose-*:1.3.0-alpha04
. A versão 1.3.0-alpha04 contém essas confirmações.
Novos recursos
- Adicionamos suporte para desfazer a ação secundária do
SwipeToReveal
. (I7a22d).
Mudanças na API
- Adicione
HorizontalPageIndicator
na biblioteca Wear Material3. (Ifee99). - Atualizamos as ferramentas de visualização do Wear Compose para usar a biblioteca
androidx.wear.tooling.preview
. (Ib036e).
Correções de bugs
- Correção de um bug em botões redondos em que os modificadores não eram encadeados corretamente. (I5e162).
Versão 1.3.0-alpha03
9 de agosto de 2023
Lançamento de androidx.wear.compose:compose-*:1.3.0-alpha03
. A versão 1.3.0-alpha03 contém essas confirmações.
Mudanças na API
- Adicionamos dois novos elementos combináveis no Material para implementar
SwipeToReveal
com cards e ícones. Esses elementos combináveis seguem a orientação de UX recomendada no componente e facilitam a implementação deSwipeToReveal
pelos desenvolvedores com os componentes atuais do Wear Material. (I7ec65) - Ativamos as anotações
FloatRange
como restrições de API, que antes eram declaradas em comentários. (Icb401).
Correções de bugs
- Movemos a lógica de rolagem inicial de
ScalingLazyColumn
para dentro deonGloballyPositioned()
. (Ic90f1). - Agora estamos usando
drawWithCache
emPositionIndicator
,ProgressIndicator
eSelectionControls
para otimizar as alocações de traços. (I5f225, b/288234617). - Corrigimos a visibilidade da marca de seleção da caixa de seleção em estados desativados. (Ib25bf).
- Atualizamos
Placeholder
para permitir a redefinição e mostrar o marcador de posição se o conteúdo não estiver mais no estado pronto. (Ibd820). - Fizemos algumas correções em testes instáveis de
Placeholder
(Idb560).
Versão 1.3.0-alpha02
26 de julho de 2023
Lançamento de androidx.wear.compose:compose-*:1.3.0-alpha02
. A versão 1.3.0-alpha02 contém estas confirmações.
Mudanças na API
- Fornecemos
ExpandableStateMapping
, uma nova maneira de gerarExpandableStates
, para casos em que eles precisam ser criados sob demanda, não necessariamente em um escopo@Composable
(Iff9e0) SwipeToDismissBox
foi migrado do pacoteandroidx.wear.compose.material
paraandroidx.wear.compose.foundation
. (I275fb).- Arquivos de API atualizados para anotar a supressão de compatibilidade. (I8e87a, b/287516207).
- Tornamos públicas as constantes de altura para
Chip
,CompactChip
eToggleChip
(Idbfde). - Tornamos públicos os paddings horizontais e verticais para
Chip
eCompactChip
. (Ieeaf7) - Adicionada funcionalidade para desativar o processamento de deslizar em
SwipeDismissableNavHost
usando o novo parâmetrouserSwipeEnabled
. (Id2a0b, b/230865655). - Atualizamos a biblioteca Wear Compose Navigation para usar o novo
SwipeToDismissBox
do Wear Compose Foundation. (I4ff8e).
Correções de bugs
- Corrigimos um bug de ordem Z em que o
expandedItem
não mostrava o conteúdo correto depois de clicar no comportamento de um botão quando ele tinha botões. (I1899d, b/289991514) - Melhoria no processamento de foco de
SwipeToDismissBox
(e, portanto, deSwipeDismissableNavHost
) usandoHierarchicalFocusCoordinator
(I45362, b/277852486). - Corrigimos o processamento de gestos em
SwipeableV2
. (I89737) - Finalizamos os perfis de referência para a versão 1.2. (Id5740).
- Após a migração de
SwipeToDismissBox
para o Foundation, a implementação do MaterialSwipeToDismissBox
agora encaminha para o Foundation e fornece valores de cores padrão do tema.(If8451) - Adicionamos semântica de cabeçalho a
ListHeader
. (Ic5420). - Agora,
Chip
eToggleChip
ajustam a altura para acomodar conteúdo que cresceu devido a fontes grandes para acessibilidade, quando necessário. (Iaf302). - Correção de um bug na função semântica da área tocável de
SplitToggleChip
para acessibilidade. (Ieed3a). - A configuração de redução de movimento agora desativa o efeito de brilho e o movimento de limpeza em marcadores de posição. (I91046).
Stepper
eInlineSlider
agora oferecem suporte a cliques repetidos em pressionamentos longos para que você possa aumentar/diminuir rapidamente o valor deStepper
eInlineSlider
mantendo pressionados os botões + ou -. (I27359).
Versão 1.3.0-alpha01
21 de junho de 2023
Lançamento de androidx.wear.compose:compose-*:1.3.0-alpha01
. A versão 1.3.0-alpha01 contém estas confirmações.
Correções de bugs
- Conforme anunciado em
1.2.0-alpha07
e1.2.0-alpha10
, agora estamos mudando oDefaultTextStyle
para desativar o padding da fonte e manter a consistência em toda a plataforma Android. Isso vai resolver alguns casos de corte de texto com tamanhos de fonte grandes e também pode afetar layouts de tela. Por isso, os testes de captura de tela precisam ser atualizados. Por exemplo, vemos um corte de texto aqui (Ic6a86)

- Ele não aparece mais quando o padding da fonte está desativado:

- Atualizamos
wear.compose.foundation
para ser uma dependência de API dewear.compose.material
(I72004, b/285404743). - Corrigimos um bug no
SwipeToDismissBox
. As chaves de plano de fundo e conteúdo agora são transmitidas para o bloco de recuperação para que novos modificadores sejam criados quando o conteúdo ou o plano de fundo mudar. (Ib876c, b/280392104) - Atualizamos
TimeText
para usar a localidade ao escolher o formato de 12 ou 24 horas. (If4a3d). - Corrigimos uma inconsistência nos parâmetros padrão
SwipeToDismissBox
contentScrimColor
. (I2d70f). - Melhoramos o processamento de movimento em
SwipeToReveal
. (I28fb7).
Problemas conhecidos
- Oferecer suporte a tamanhos de fonte configurados pelo usuário é um requisito de acessibilidade. Sabemos que os chips de várias linhas podem levar ao corte de texto quando exibidos com tamanhos de fonte grandes. Por isso, vamos atualizar o chip em uma versão alfa 1.3 inicial para fazer ajustes de altura nesses casos.
Versão 1.2
Versão 1.2.1
18 de outubro de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.1
. A versão 1.2.1 contém estas confirmações.
Correções de bugs
- Correção de um bug em que o
PositionIndicator
desaparecia incorretamente. (7a167f).
Versão 1.2.0
9 de agosto de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.0
. A versão 1.2.0 contém estas confirmações.
Mudanças importantes desde a 1.1.0
- Versão estável do Compose para Wear OS 1.2.0 (saiba mais)
- Para uma lista das principais mudanças no Wear Compose 1.2, consulte as notas da versão do Compose para Wear OS 1.2 Beta01.
Versão 1.2.0-rc01
26 de julho de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.0-rc01
. A versão 1.2.0-rc01 contém estas confirmações.
Correções de bugs
- Finalizamos os perfis de referência para nossa versão 1.2 (Id5740).
Versão 1.2.0-beta02
7 de junho de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.0-beta02
. A versão 1.2.0-beta02 contém estas confirmações.
Novos recursos
- Adicionamos a nova variável experimental
LocalReduceMotion
CompositionLocal
, que desativa o escalonamento e o esmaecimento emScalingLazyColumn
. (I58024).
Correções de bugs
- Atualizamos os perfis de referência para as bibliotecas de fundação e material do Wear Compose(I4725d).
- Corrigimos uma inconsistência nos valores padrão dos parâmetros
SwipeToDismissBox
contentScrimColor
(I2d70f) - Corrigimos o valor padrão de
DefaultTextStyle
usado na configuraçãoIncludeFontPadding
(I737ed).
Versão 1.2.0-beta01
24 de maio de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.0-beta01
. A versão 1.2.0-beta01 contém estas confirmações.
Novidades no Compose para Wear OS 1.2
A versão 1.2-beta01 do Compose para Wear OS indica que esta versão da biblioteca está com todos os recursos e a API está bloqueada (exceto quando marcada como experimental). O Wear Compose 1.2 inclui as seguintes novas funcionalidades:
expandableItem
eexpandableItems
são dois novos componentesFoundation
que permitem expandir itens em umScalingLazyColumn
. UseexpandableItem
para um único item expansível, como texto em que o número de linhas. UseexpandableItems
para um grupo de itens expansíveis eexpandableButton
para simplificar a criação de um botão que é recolhido depois que o conteúdo é expandido.HierarchicalFocusCoordinator
: esse elemento combinável experimental permite marcar subárvores da composição como foco ativado ou desativado.Picker
: a API agora incluiuserScrollEnabled
para controlar se o seletor está ativo para a rolagem do usuário.PickerGroup
: um novo elemento combinável para processar vários seletores juntos. Ele lida com o foco entre os seletores usando a APIHierarchicalFocusCoordinator
e permite a centralização automática dos itens do seletor.Placeholder
: atualizamos as animações de redução e "Apagar". O efeito de limpeza agora é aplicado imediatamente quando o conteúdo está pronto.ScalingLazyColumn
: migramosScalingLazyColumn
e as classes associadas deandroidx.wear.compose.material.ScalingLazyColumn
paraandroidx.wear.compose.foundation.lazy.ScalingLazyColumn
. Atualize para usar a versãoFoundation.Lazy
.SwipeToReveal
: adicionamos suporte experimental ao gesto de deslizar para revelar como uma forma de acessar ações secundárias, complementando o padrão de "pressionar e manter pressionado" atual.Stepper
: agora tem uma sobrecarga com um parâmetroenableRangeSemantics
extra para facilitar a desativação da semântica de intervalo padrão.Previews
: adicionamos as seguintes anotações personalizadas para visualizar elementos combináveis em telas do Wear:WearPreviewSmallRound
visualiza o elemento combinável em um dispositivo pequeno e redondo;WearPreviewLargeRound
visualiza o elemento combinável em um dispositivo grande e redondo;WearPreviewSquare
visualiza o elemento combinável em um dispositivo quadrado. Além disso, as seguintes anotações de visualização única e múltipla:WearPreviewFontScales
visualiza os elementos combináveis em um dispositivo wearable com vários tamanhos de fonte, enquantoWearPreviewDevices
visualiza os elementos combináveis em diferentes dispositivos wearables.- Adicionamos um
DefaultTextStyle
ao Wear Compose que define a propriedadePlatformTextStyle.includeFontPadding
como "true" por padrão (essa é a configuração atual). Isso vai permitir que sincronizemos a desativação do padding de fontes por padrão com as bibliotecas do Compose em uma versão Alfa 1.3 inicial. Consulte 1.2.0-alpha10 para mais informações.
Novos recursos
- Adicionamos suporte experimental para animação de desativação de escalonamento e fade quando a configuração "reduce_motion" está ativada. (I58024).
Correções de bugs
- Melhoria na documentação de
angularWidthDp
emCurvedSize.kt
(Iab75c) - Agora, o
SwipeDismissableNavHost
registra um aviso com possíveis causas de uma pilha de retorno vazia. Isso é feito para evitar falhas inesperadas causadas porIllegalArgumentException
, que era gerado quando a pilha de retorno estava vazia. (I04a81, b/277700155)
Versão 1.2.0-alpha10
10 de maio de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.0-alpha10
. A versão 1.2.0-alpha10 contém estas confirmações.
Novos recursos
- Adicionamos suporte ao recurso Deslizar para revelar como uma forma de acessar ações secundárias. Esse padrão complementa o "toque longo", a maneira atual de um usuário revelar ações secundárias (diferentes). (I60862).
Mudanças na API
- Adicionamos
RevealScope
a elementos combináveis de ação emSwipeToReveal
, o que dá acesso ao deslocamento em que outras ações são reveladas. (I3fd56)
Correções de bugs
- Correção de um problema em que o
ScalingLazyColumn
ficava travado na API 33 do Wear após um movimento rápido (Ic4599). - Fizemos algumas melhorias de desempenho no
PositionIndicator
para reduzir a instabilidade. (I35e92). - Corrigimos um bug no ícone e no
CompactChip
em que a função semântica não estava mais sendo definida comoRole.Button
. (I93f91, b/277326264).
Problemas conhecidos
Identificamos um bug no Android Studio que causa falha na renderização da visualização quando anotada com @WearPreviewDevices e @WearPreviewFontScales. Uma correção está planejada para ser lançada em breve. As outras anotações de prévia do Wear funcionam como esperado no Android Studio Giraffe 2022.3.1 e versões mais recentes.
Na versão 1.2.0-alpha07, adicionamos DefaultTextStyle ao Wear Compose, mantendo o valor PlatformTextStyle.includeFontPadding atual como verdadeiro. Para mais informações, consulte Corrigir o padding da fonte no Compose. Vamos mudar o DefaultTextStyle para desativar o padding da fonte em uma versão alfa 1.3 inicial, para manter a consistência em toda a plataforma Android. Isso vai resolver alguns casos de corte de texto com tamanhos de fonte grandes e também pode afetar layouts de tela. Por isso, os testes de captura de tela precisam ser atualizados. Por exemplo, com tamanhos de fonte grandes, vemos o corte de texto aqui:

- Ele não aparece mais quando o padding da fonte está desativado:

A nova configuração pode ser adotada agora substituindo a tipografia no seu tema. Consulte o exemplo de código.
Versão 1.2.0-alpha09
19 de abril de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.0-alpha09
. A versão 1.2.0-alpha09 contém estas confirmações.
Mudanças na API
- Adição de
angularSizeDp
à APICurvedModifier
para definir a largura angular em DP (I89a52).
Correções de bugs
- Correção de problemas de acessibilidade nas demonstrações do seletor de horário(Id0eb7).
Versão 1.2.0-alpha08
5 de abril de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.0-alpha08
. A versão 1.2.0-alpha08 contém estas confirmações.
Mudanças na API
- Renomeamos
ExpandableItemsState
comoExpandableState
(If85ea). - Adicionamos
expandableButton
para simplificar a criação de um botão que se recolhe quando o conteúdo é expandido e também atualizamos os exemplos de elementos expansíveis. (Iae309).
Correções de bugs
- Melhoramos os exemplos expansíveis para mostrar mais possibilidades. Animação modificada de
expandableItem
para manter o conteúdo centralizado durante a animação. (I2f637). - Atualizamos
ToggleControls
para evitar recomposições extras ao animar manualmente as cores usando o estado. (I5d319).
Versão 1.2.0-alpha07
22 de março de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.0-alpha07
. A versão 1.2.0-alpha07 contém estas confirmações.
Mudanças na API
- Movemos os componentes de item expansível (adicionados na versão 1.2.0-alpha06) do material para a base, já que eles não tinham uma referência significativa ao
MaterialTheme
. (Ib0525)
Correções de bugs
- Corrigimos uma falha que ocorreu em uma tela usando
PickerGroup
, garantindo quePickerGroup
processe o foco corretamente quando nenhum Picker tiver o foco. Também adicionamos suporte para rolagem RSB nas nossas demonstrações do Picker. (If8c19). - Melhoramos as transições de caixa de diálogo. Agora, a transição de introdução é mais suave para corresponder à transição de encerramento. (Ib5af9).
- Adicionamos um
DefaultTextStyle
ao Wear Compose que define a propriedadePlatformTextStyle.includeFontPadding
como "true" por padrão (essa é a configuração atual). Isso vai permitir que sincronizemos a desativação do padding de fontes por padrão com as bibliotecas do Compose no futuro. Consulte Correção do padding de fontes no Compose para mais informações. (I2aee8). - Revertemos uma dependência de prévia
UpsideDownCake
via activity-compose que bloqueava a publicação de apps na Google Play Store. (I6443d).
Versão 1.2.0-alpha06
8 de março de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.0-alpha06
. A versão 1.2.0-alpha06 contém estas confirmações.
Mudanças na API
- Adicione o componente
CurvedBox
, que coloca os componentes um em cima do outro no mundo curvo. (I29200) - Adição de itens expansíveis: dois novos componentes para oferecer suporte a um grupo de itens expansíveis em um
ScalingLazyColumn
ou a um único item expansível, como texto em que o número de linhas aumenta. (I95dd5). - Adicionamos as seguintes anotações personalizadas para visualizar elementos combináveis em telas do Wear:
WearPreviewSmallRound
mostra o elemento combinável em um dispositivo pequeno e redondo;WearPreviewLargeRound
mostra o elemento combinável em um dispositivo grande e redondo;WearPreviewSquare
mostra o elemento combinável em um dispositivo quadrado. Além disso, as seguintes anotações de visualização única e múltipla:WearPreviewFontScales
visualiza os elementos combináveis em um dispositivo wearable com vários tamanhos de fonte, enquantoWearPreviewDevices
visualiza os elementos combináveis em diferentes dispositivos wearables. Para usar essas prévias, é necessário ter a versão mais recente do Android Studio (Giraffe Canary 6) ou mais recente. Se essas anotações não forem adequadas para sua finalidade, o Preview ainda poderá ser usado e aceita mais personalizações por parâmetros. (I397ff) - Marcamos
HierarchicalFocusCoordinator
como experimental enquanto ele é considerado um candidato a ser movido para as bibliotecas principais do Compose, devido à sua ampla aplicabilidade. (I3a768).
Correções de bugs
- Corrigimos um bug no
HierarchicalFocusCoordinator
. Agora, quando a lambda transmitida para o parâmetrofocusEnabled
é alterada, usamos a nova corretamente. (Icb353). - Atualizamos a cor padrão do conteúdo desativado para "Background" ao usar cores primárias como plano de fundo em
Button
,CompactButton
,Chip
,CompactChip
eToggleButton
. Isso melhora o contraste para acessibilidade. (I527cc).
Versão 1.2.0-alpha05
22 de fevereiro de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.0-alpha05
. A versão 1.2.0-alpha05 contém estas confirmações.
Mudanças na API
- A API
PickerGroup
foi atualizada para permitir a propagação opcional das restrições mínimas para o elemento combinável. Quando definido como "true", as restrições mínimas transmitidas do elemento combinável pai serão permitidas noPickerGroup
. Se definido como "false",PickerGroup
vai redefinir as restrições mínimas. (I3e046) - Adicionamos
animateScrollToOption
à API Picker para oferecer suporte à animação programática a uma opção específica do Picker (I6fe67).
Correções de bugs
- Atualizamos o
HorizontalPageIndicator
para oferecer suporte a layouts da direita para a esquerda. (Ia4359). - Foram adicionados testes de captura de tela para layout da direita para a esquerda em
HorizontalPageIndicator
(I6fbb8). - Mais testes foram adicionados a
SwipeDismissableNavHostTest
, que usaTestNavHostController
(I61d54).
Versão 1.2.0-alpha04
8 de fevereiro de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.0-alpha04
. A versão 1.2.0-alpha04 contém estas confirmações.
Novos recursos
- Introdução de
PickerGroup
para gerenciar vários seletores usando a API de foco. Ele lida com o foco entre diferentes seletores, permite a centralização automática deles com base em parâmetros e deixa que os desenvolvedores mudem o foco entre seletores ao mesmo tempo em que lidam com os eventos do grupo. No modo Talkback, oPickerGroup
processa o foco movendo-o para o seletor escolhido do grupo (I60840).
Mudanças na API
- Adicionamos uma sobrecarga ao Stepper com um parâmetro
enableRangeSemantics
extra para facilitar a desativação da semântica de intervalo padrão (Ia61d4).
Correções de bugs
- A
ScalingLazyColumn
agora pode ser aninhada em uma página de rolagem horizontal (Iec3f8, b/266555016). - Melhoria na limpeza dos kdocs do Stepper e dos testes
StepperTest
(Ic118e). - A dependência
androidx.navigation
foi atualizada para a versão 2.5.3 (If58ed).
Versão 1.2.0-alpha03
25 de janeiro de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.0-alpha03
. A versão 1.2.0-alpha03 contém estas confirmações.
Mudanças na API
- Migramos
ScalingLazyColumn
(e as classes associadas) deandroidx.wear.compose.material.ScalingLazyColumn
paraandrdoidx.wear.compose.foundation.lazy.ScalingLazyColumn
. Confira este exemplo de migração. Esse novo local é mais parecido com o decompose.foundation.lazy.LazyColumn
e é mais natural, já que não é um componente opinativo do Material Design. A mudança está acontecendo agora em preparação para uma nova biblioteca do Material3, em que vamos trabalhar em paralelo com a biblioteca atual (I060e7).
As mudanças a seguir fazem parte da migração de ScalingLazyColumn
do Material para Foundation.Lazy
:
- As APIs
PositionIndicator
daScalingLazyColumn
do Material Design foram descontinuadas. Atualize paraFoundation.Lazy ScalingLazyColumn
. Além disso, o campoanchorType
foi adicionado aScalingLazyListLayoutInfo
(I29d95). - A
ScalingLazyColumn
foi marcada como descontinuada no pacote do Wear Compose Material (I16d34). - Atualizamos o modificador
ScrollAway
para usar oScalingLazyListState
do Wear ComposeFoundation.Lazy
e descontinuamos a sobrecarga que ocupouScalingLazyListState
do Wear Compose Material (Ifc42c). - Atualizamos as APIs da caixa de diálogo para usar
ScalingLazyListState
doFoundation.Lazy
e descontinuamos as sobrecargas que usavam oScalingLazyListState
do Material Design (Ic8960). - Atualizamos as APIs Picker para usar
ScalingParams
deFoundation.Lazy
e descontinuamos as sobrecargas que usavamScalingParams
do Material Design (Idc3d8).
Correções de bugs
- Corrigimos um bug que causava recomposições desnecessárias no
ScalingLazyListState.centerItemIndex
garantindo que ele só enviasse atualizações quando o valor realmente mudasse (Ia9f38). - Melhoramos o desempenho do
SwipeToDismissBox
(I3933b). - Foram adicionados testes comparativos para
ScalingLazyColumn
na Wear Compose Foundation (Ie00f9). - Atualizamos alguns métodos internos de classes
ScalingLazyColumn
no Material Design para usar os equivalentes deFoundation.Lazy
(I38aab). - Corrigimos alguns problemas nos testes do seletor e adicionamos mais testes para verificar a rolagem com deslocamento (I6ac34).
- Migramos as demonstrações de integração
ScalingLazyColumn
para depender deFoundation.Lazy
em vez deScalingLazyColumn
do Material Design (Ic6caa). - Adicionamos parâmetros
fromDate/toDate
opcionais à demonstraçãoDatePicker
(I961cd).
Versão 1.2.0-alpha02
11 de janeiro de 2023
Lançamento de androidx.wear.compose:compose-*:1.2.0-alpha02
. A versão 1.2.0-alpha02 contém estas confirmações.
Mudanças na API
- Os testes de interface do Android Compose agora vão executar transmissões de layout para cada frame ao executar frames para ficar ociosos (por exemplo, com
waitForIdle
). Isso pode afetar testes que são executados em frames individuais de animações de layout (I8ea08, b/222093277). - O parâmetro
minLines
foi adicionado ao Wear Text para um comportamento consistente comBasicText
(I24874). - O
CompactChipTapTargetPadding
foi disponibilizado ao público para que apareça na documentação (If1e70, b/234119038).
Correções de bugs
- Desativação de builds multiplataforma para pacotes
wear.compose
(Iad3d7). - Correção de kdocs para
scrollToOption
(I6f9a0). - O
PlaceholderState.rememberPlaceholderState()
foi atualizado para usarrememberUpdatedState
, e o estado vai ser atualizado se a lambdaonContentReady
também for (I02635, b/260343754). - Correção de um problema de instabilidade do texto no componente
Picker
ao aproveitar a nova estratégia de composição adicionada aModifier.graphicsLayer
(I99302). - Correção de um bug que causava oscilações na nossa demonstração do
DatePicker
(I660bd). - Melhoramos a acessibilidade das demonstrações do seletor de data e horário de 12 horas (I05e12).
- Atualizamos as demonstrações dos seletores de data e horário para que eles não sejam afetados por mudanças de RSB quando não selecionados (I4aecb).
Versão 1.2.0-alpha01
7 de dezembro de 2022
Lançamento de androidx.wear.compose:compose-*:1.2.0-alpha01
. A versão 1.2.0-alpha01 contém estas confirmações.
Novos recursos
- Atualizamos a função experimental de marcador de posição para que o efeito "Apagar" seja aplicado imediatamente quando o conteúdo estiver pronto em vez de aguardar o início do próximo loop de animação. Também fizemos algumas atualizações nas animações de redução e apagar (I5a7f4).
Mudanças na API
- Adicionamos um elemento combinável
HierarchicalFocusCoordinator
para ativar a marcação de subárvores da composição como foco ativado ou desativado (I827cb). - Adicionamos uma nova propriedade para substituir o papel semântico de
ToggleButton
(I67132). - Atualizamos
TimeTextDefaults.TimeFormat12Hours
para remover AM/PM emTimeText
. Isso vai mudar o valor padrão dos parâmetrostimeSource
na APITimeText
(I1eb7f). - Estendemos a API Picker para melhorar a acessibilidade de telas com vários seletores. Há uma nova propriedade
userScrollEnabled
para controlar se o seletor está ativo para a rolagem do usuário (I3c3aa).
Correções de bugs
- Mudamos a largura da borda padrão de um
OutlinedButton/OutlinedCompactButton
de 2 dp para 1 dp, de acordo com as especificações finais da UX (Icf84d). - Para reduzir o efeito em que o primeiro item adicionado a uma
ScalingLazyColumn
vazia parece rolar para a tela, adicionamos umautoCentering topPadding
estimado quando o conteúdo está vazio. Essa mudança calcula a quantidade de padding superior necessária, presumindo um item inicial de 0.dp de altura. EmScalingLazyListAnchorType.ItemStart
, isso vai calcular o padding superior correto. EmScalingLazyListAnchorType.ItemCenter
, esse cálculo vai ser incorreto, porque a altura dos itens é necessária para dimensionar corretamente o conteúdo, resultando em um pequeno efeito de rolagem com base na altura real dos itens (I239a4). - Atualizamos o scrim em segundo plano aplicado à animação
SwipeToDismiss
para corresponder à plataforma Wear (I9003e). - O processamento de
LazyListState
eScalingLazyListState
foi corrigido noPositionIndicator
para itens de lista de tamanho 0 para evitar erros de divisão por zero (Ic28dd).
Versão 1.1
Versão 1.1.2
8 de fevereiro de 2023
Lançamento de androidx.wear.compose:compose-foundation:1.1.2
, androidx.wear.compose:compose-material:1.1.2
e androidx.wear.compose:compose-navigation:1.1.2
. A versão 1.1.2 contém estas confirmações.
Correções de bugs
- Corrigimos um bug que causava recomposições desnecessárias no
ScalingLazyListState.centerItemIndex
garantindo que ele só enviasse atualizações quando o valor realmente mudasse (Ia9f38).
Versão 1.1.1
11 de janeiro de 2023
Lançamento de androidx.wear.compose:compose-foundation:1.1.1
, androidx.wear.compose:compose-material:1.1.1
e androidx.wear.compose:compose-navigation:1.1.1
. A versão 1.1.1 contém estas confirmações.
Correções de bugs
- O
PlaceholderState.rememberPlaceholderState()
foi atualizado para usarrememberUpdatedState
, e o estado vai ser atualizado se a lambdaonContentReady
também for (I02635, b/260343754).
Versão 1.1.0
7 de dezembro de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.1.0
, androidx.wear.compose:compose-material:1.1.0
e androidx.wear.compose:compose-navigation:1.1.0
. A versão 1.1.0 contém estas confirmações.
Mudanças importantes desde a versão 1.0.0
- Versão estável do Compose para Wear OS 1.1.0 (Saiba mais).
- Para uma lista das principais mudanças no Wear Compose 1.1, consulte as notas da versão do Compose para Wear OS 1.1 Beta01.
Novos recursos
- Atualizamos a função experimental de marcador de posição para que o efeito "Apagar" seja aplicado imediatamente quando o conteúdo estiver pronto em vez de aguardar o início do próximo loop de animação. Também fizemos algumas atualizações nas animações de redução e apagar (I5a7f4).
Correções de bugs
- Mudamos a largura da borda padrão de um
OutlinedButton/OutlinedCompactButton
de 2 dp para 1 dp, de acordo com as especificações finais da UX (Icf84d). - Para reduzir o efeito em que o primeiro item adicionado a uma
ScalingLazyColumn
vazia parece rolar para a tela, adicionamos umautoCentering topPadding
estimado quando o conteúdo está vazio. Essa mudança calcula a quantidade de padding superior necessária, presumindo um item inicial de 0.dp de altura. EmScalingLazyListAnchorType.ItemStart
, isso vai calcular o padding superior correto. EmScalingLazyListAnchorType.ItemCenter
, esse cálculo vai ser incorreto, porque a altura dos itens é necessária para dimensionar corretamente o conteúdo, resultando em um pequeno efeito de rolagem com base na altura real dos itens (I239a4). - Atualizamos o scrim em segundo plano aplicado à animação
SwipeToDismiss
para corresponder à plataforma Wear (I9003e). - O processamento de
LazyListState
eScalingLazyListState
foi corrigido noPositionIndicator
para itens de lista de tamanho 0 para evitar erros de divisão por zero (Ic28dd).
Versão 1.1.0-rc01
9 de novembro de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.1.0-rc01
, androidx.wear.compose:compose-material:1.1.0-rc01
e androidx.wear.compose:compose-navigation:1.1.0-rc01
. A versão 1.1.0-rc01 contém estas confirmações.
Correções de bugs
- Adicionamos regras de perfil de referência para
Placeholders
,ScrollAway
,RadioButton
,Switch
,Checkbox
,OutlinedButton
,OutlinedCompactButton
,OutlinedChip
eOutlinedCompactChip
(I8249c). - Corrigimos um bug no
Modifier.scrollAway
para que oTimeText
ainda seja mostrado se oitemIndex
especificado for inválido, por exemplo, caso o índice de itens esteja fora do intervalo (I2137a). - Atualizamos a animação
SwipeToDismissBox
para corresponder à implementação da plataforma. Após a animação inicial de apertar, a tela desliza para a direita quando a dispensa é acionada (I41d34). - Como otimização, atualizamos a
Modifier.scrollAway
para ler somente oscrollState
dentro do bloco de medida para evitar que o modificador seja recomposto após cada nova medida (I4c6f1). - Adicionamos documentação e um exemplo aos marcadores de posição para mostrar a ordem correta de
Modifier.placeholder
eModifier.placeholderShimmer
quando aplicados ao mesmo elemento combinável (Ie96f4, b/256583229). - Mudamos a largura da borda padrão de um
OutlinedCompactChip/OutlinedChip
de 2 dp para 1 dp, de acordo com as especificações finais da UX (Ib3d8e). - Corrigimos um bug no
rememberPickerState
em que as entradas atualizadas não eram salvas, de modo que os elementos combináveis não eram atualizados após mudanças nas entradas (I49ff6, b/255323197). - Fizemos algumas atualizações na interface dos marcadores de posição: 1) mudamos o gradiente de brilho para 1,5 vez o tamanho da tela, 2) adicionamos easing (bézier cúbica) da progressão do brilho e 3) aceleramos a animação de deslizamento (250 ms) (Id29c1).
- Corrigimos um bug na interface no efeito de marcador de posição "WipeOff" em que os planos de fundo dos ícones e cards eram apagados um pouco antes porque a posição do componente na tela não era considerada (I2c7cb).
- Atualizamos a exibição do plano de fundo dos marcadores de posição para combinar cores em vez de adicioná-los a camadas quando possível. Isso reduz o risco de mistura alfa das diferentes camadas cortadas, impedindo que as cores vazem nas bordas do marcador (I2ea26).
- Corrigimos o cálculo de
ScalingLazyListState.centerItemIndex/centerItemOffset
para que, se dois itens ficarem em um dos lados da linha central da janela de visualização, o que estiver mais próximo seja considerado comocenterItem
(I30709, b/254257769). - Corrigimos um bug no
ScalingLazyListState.layoutInfo.visibleItemsInfo
que informava deslocamentos incorretos durante a inicialização daScalingLazyColumn
. Agora, uma lista vazia será retornada até que todos os itens da lista fiquem visíveis e tenham os deslocamentos corretos. Confira se háScalingLazyListState.layoutInfo.visibleItemsInfo.isNotEmpty()
. Se houver, isso confirma que a inicialização doScalingLazyColumn
foi concluída e que os itens estão visíveis (I3a3b8).
Versão 1.1.0-beta01
24 de outubro de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.1.0-beta01
, androidx.wear.compose:compose-material:1.1.0-beta01
e androidx.wear.compose:compose-navigation:1.1.0-beta01
. A versão 1.1.0-beta01 contém estas confirmações.
Novidades no Compose para Wear OS 1.1
A versão 1.1.0-beta01 do Compose para Wear OS indicou que esta versão da biblioteca está com todos os recursos e a API está bloqueada.
- A versão do Wear Compose 1.1 inclui estas novas funcionalidades:
- Picker: melhorias na acessibilidade do seletor para que as telas de vários seletores sejam navegáveis com os leitores de tela e a descrição do conteúdo seja acessível.
- O parâmetro
contentDescription
do seletor agora é usado apenas para a opção selecionada e utiliza uma string anulável. Na confirmação anterior, era necessário transmitir um mapeamento de opção para a descrição do conteúdo, mas apenas a opção selecionada era usada. - Os itens do seletor agora estão sempre centralizados, corrigindo um bug que causava a mudança do alinhamento ao definir
gradientRatio
como zero. Chip/ToggleChip
: atualizamos os gradientes padrão deChip/ToggleChip
para alinhamento com a especificação de UX mais recente.ChipDefaults.gradientBackgroundChipColors
foi atualizado para começar em 50% do principal em vez de 32,5%.Chip/ToggleChip
: foram adicionadas sobrecargas para modificar as formas dos ícones.Chip/Button/ToggleButton
: foi adicionado um novo estilo de contorno para ícones e botões, além de novos elementos combináveisOutlinedChip
eOutlinedButton
que fornecem umChip/Button
transparente com uma borda fina.- Card: os gradientes padrão dos cards foram atualizados para ficarem de acordo com a especificação mais recente da UX.
CardDefaults.cardBackgroundPainter
foi atualizado para começar em 30% do principal e terminar em 20% doonSurfaceVariant
(anteriormente, o intervalo era de 20% a 10% doonSurfaceVariant
).ToggleChip.toggleChipColors
muda de um gradiente linear de 75% de superfície a 32,5% do principal para 0% de superfície a 50% do principal. Button/ToggleButton
: foram adicionadas propriedades para modificar formas de botão.- Theme: várias cores padrão do
MaterialTheme
foram atualizadas para melhorar a acessibilidade, já que as cores originais não tinham contraste suficiente, dificultando a diferenciação de ícones, cards e botões da cor de fundo do tema. InlineSlider/Stepper
: funções de botão foram adicionadas para que oTalkback
possa reconhecê-las como botões.- Scaffold: o
PositionIndicator
agora está posicionado e dimensionado para ocupar apenas o espaço necessário. Isso é útil, por exemplo, quando informações semânticas são adicionadas a ele. O TalkBack agora vai mostrar os limites corretos dePositionIndicator
na tela. CurvedText/TimeText
: foi adicionadoModifier.scrollAway
, que rola um item verticalmente para dentro/fora da visualização com base no estado de rolagem (com sobrecargas para trabalhar comColumn
,LazyColumn
eScalingLazyColumn
). OScrollAway
normalmente é usado para tirar umTimeText
da visualização quando o usuário começa a rolar uma lista de itens para cima.CurvedText/TimeText
: foi adicionado suporte afontFamily
,fontStyle
efontSynthesis
emCurvedTextStyle
, utilizável emcurvedText
ebasicCurvedText
.CurvedText/TimeText
: foi adicionadofontWeight
ao construtor e ao método de cópia emCurvedTextStyle
.ToggleControls
: os controles de alternância animadosCheckbox
,Switch
eRadioButton
foram adicionados para uso comToggleChip
eSplitToggleChip
. Eles podem ser usados em vez dos ícones estáticos fornecidos porToggleChipDefaults
(switchIcon
,checkboxIcon
eradioIcon
).- Placeholder: foi adicionado suporte experimental a marcadores de posição. Três efeitos visuais distintos foram criados para trabalhar em conjunto.
- O primeiro é um efeito temporário de pincel em segundo plano usado em contêineres, como ícones e cards, para desenhar sobre o plano de fundo normal enquanto o conteúdo é carregado.
- O segundo é um modificador (
Modifier.placeholder()
) para mostrar um widget de marcador de posição em forma de estádio sobre o conteúdo que está sendo carregado. - E o terceiro é um efeito de gradiente/brilho de modificador (
Modifier.placeholderShimmer()
) mostrado acima dos outros efeitos para indicar aos usuários que estamos aguardando o carregamento dos dados.- Todos esses efeitos são projetados para serem coordenados, brilhar e se apagar de forma orquestrada.
- As dependências do Core Compose foram atualizadas de 1.2 para 1.3.
Mudanças na API
- Os parâmetros de fonte (
fontFamily
,fontWeight
,fontStyle
efontSynthesis
) agora podem ser especificados diretamente como parâmetros decurvedText
(Idc422).
Correções de bugs
curveText
ebasicCurvedText
agora vão funcionar corretamente com o TalkBack. Eles têm um nó do Compose bem-dimensionado e posicionado (mas vazio) com a UI associada a eles, usando o texto como descrição do conteúdo (I7af7c, b/210721259).- Foi corrigido um bug em
Picker
quando oPickerState.repeatedItems = false
para adicionar uma configuração explícita de parâmetros autoCentering noScalingLazyColumn
interno dos seletores. Isso garante a possibilidade de rolar a opção zero até o centro da visualização (I8a4d7).
Versão 1.1.0-alpha07
5 de outubro de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.1.0-alpha07
, androidx.wear.compose:compose-material:1.1.0-alpha07
e androidx.wear.compose:compose-navigation:1.1.0-alpha07
. A versão 1.1.0-alpha07 contém estas confirmações.
Novos recursos
- Adicionamos suporte experimental a marcadores de posição. Três efeitos visuais distintos foram criados para trabalhar em conjunto. O primeiro é um efeito temporário de pincel em segundo plano usado em contêineres, como ícones e cards, para desenhar sobre o plano de fundo normal enquanto o conteúdo é carregado. O segundo é um modificador (
Modifier.placeholder()
) para mostrar um widget de marcador de posição em forma de estádio sobre o conteúdo que está sendo carregado. E o terceiro é um efeito de gradiente/brilho de modificador (Modifier.placeholderShimmer()
) mostrado acima dos outros efeitos para indicar aos usuários que estamos aguardando o carregamento dos dados. Todos esses efeitos são projetados para serem coordenados, brilhar e se apagar de forma orquestrada (I3c339).
Mudanças na API
- Foi adicionado suporte a
fontWeight
,fontFamily
,fontStyle
efontSynthesis
emCurvedTextStyle
, utilizável emcurvedText
ebasicCurvedText
. Esse parâmetro pode ser usado para especificar a fonte e o estilo a serem usados no texto curvo (Iaa1a8, I72759). - O parâmetro de deslocamento de
Modifier.scrollAway
foi atualizado para Dp para consistência comModifier.offset
(antes, era em pixels). Além disso, foi refatorado como umLayoutModifier
para aumentar a eficiência (I9f94b). - Como parte da nova API de controles de alternância, o elemento
RadioButton’s circleColor
foi renomeado comoringColor
(I28fa9). - Adicionamos os controles de alternância animados
Checkbox
,Switch
eRadioButton
para uso comToggleChip
eSplitToggleChip
. Eles podem ser usados em vez dos ícones estáticos fornecidos porToggleChipDefaults
(switchIcon
,checkboxIcon
eradioIcon
) (I8a8c4).
Versão 1.1.0-alpha06
21 de setembro de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.1.0-alpha06
, androidx.wear.compose:compose-material:1.1.0-alpha06
e androidx.wear.compose:compose-navigation:1.1.0-alpha06
. A versão 1.1.0-alpha06 contém estas confirmações.
Novos recursos
- Adicionamos
Modifier.scrollAway
, que rola um item verticalmente dentro/fora da visualização, com base no estado de rolagem (com sobrecargas para trabalhar comColumn
,LazyColumn
eScalingLazyColumn
). OScrollAway
normalmente é usado para tirar umTimeText
da visualização, já que o usuário começa a rolar uma lista de itens para cima (I61766).
Correções de bugs
PositionIndicator
agora está posicionado e dimensionado para ocupar apenas o espaço necessário. Isso é útil, por exemplo, quando informações semânticas são adicionadas a ele. O TalkBack agora vai mostrar os limites corretos dePositionIndicator
na tela. (Ie6106, b/244409133).
Versão 1.1.0-alpha05
7 de setembro de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.1.0-alpha05
, androidx.wear.compose:compose-material:1.1.0-alpha05
e androidx.wear.compose:compose-navigation:1.1.0-alpha05
. A versão 1.1.0-alpha05 contém estas confirmações.
Correções de bugs
- Papéis de botão foram adicionados a
InlineSlider
eStepper
para que o TalkBack possa reconhecer essas funções como botões (Icb46c, b/244260275). - Corrigimos a ordem z da posição e os indicadores de página no Scaffold. Como os indicadores ficam na parte de cima, eles não ficam ocultos por uma possível vinheta (Ib988f, b/244207528).
Versão 1.1.0-alpha04
24 de agosto de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.1.0-alpha04
, androidx.wear.compose:compose-material:1.1.0-alpha04
e androidx.wear.compose:compose-navigation:1.1.0-alpha04
. A versão 1.1.0-alpha04 contém estas confirmações.
Mudanças na API
- Atualizamos várias cores padrão do MaterialTheme para melhorar a acessibilidade, porque as cores originais não tinham contraste suficiente, dificultando a diferenciação de ícones, cards e botões da cor de fundo do tema. As cores atualizadas são surface(0xFF202124->0xFF303133), onPrimary(0xFF202124->0xFF303133), onSecondary(0xFF202124->0xFF303133), primaryVariant(0xFF669DF6->0xFF8AB4F8) e onError(0xFF202124->0xFF000000). Embora a mudança das cores seja relativamente sutil, ela pode afetar os testes de captura de tela atuais (81ab09).
Correções de bugs
- Correção de um bug de lógica na função
ScalingLazyColumn
que podia resultar em listas com um número pequeno de itens (geralmente 2) incapazes de concluir a inicialização e que ficavam transparentes (504347).
Versão 1.1.0-alpha03
10 de agosto de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.1.0-alpha03
, androidx.wear.compose:compose-material:1.1.0-alpha03
e androidx.wear.compose:compose-navigation:1.1.0-alpha03
. A versão 1.1.0-alpha03 contém estas confirmações.
Novos recursos
- Adicionamos um novo estilo delineado para
Chips
eButtons
, bem como novos elementos combináveisOutlinedChip
eOutlinedButton
que fornecem umChip/Button
transparente com uma borda fina (Id5972).
Mudanças na API
- Foram adicionadas sobrecargas para modificar formas de botão (Icccde).
Correções de bugs
- Corrigimos o tamanho da área de controle de alternância do
ToggleChip
, porque ela não correspondia à especificação da UX, que exige um espaçador de 4 dp entre o rótulo e uma área de ícone de controle de alternância de 24 x 24 dp, com uma largura total de 28 dp. No entanto, a implementação está fornecendo uma área de controle de alternância incorreta de 36 x 24 dp. Isso resulta na remoção de 8 dp da área útil do rótulo de texto. OBSERVAÇÃO: essa correção de bug dá mais espaço para o texto e, como resultado, pode afetar positivamente o layout do texto em excesso. Se você tem testes de capturas de tela comToggleChips
, talvez eles precisem ser atualizados (I514c8, b/240548670).
Versão 1.1.0-alpha02
27 de julho de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.1.0-alpha02
, androidx.wear.compose:compose-material:1.1.0-alpha02
e androidx.wear.compose:compose-navigation:1.1.0-alpha02
. A versão 1.1.0-alpha02 contém estas confirmações.
Novos recursos
- Mudamos as dependências do Compose para o Wear OS nas principais bibliotecas do Compose da versão 1.2.0 a 1.3.0-alpha0X.
Mudanças na API
- Adição de sobrecargas para modificar as formas dos ícones (I02e87).
Correções de bugs
- Animamos a visibilidade da vinheta ao mostrar/ocultar a caixa de diálogo para que ela seja consistente com a animação de ampliação atual (Ida33e).
- Corrigimos um bug em que uma divisão por zero podia ocorrer com alguns comportamentos de deslizar rapidamente durante a rolagem (I86cb6).
- Correção de um bug em
ChipDefaults.childChipColor()
para garantir que a cor de plano de fundo desativada seja totalmente transparente (I2b3c3, b/238057342).
Versão 1.1.0-alpha01
29 de junho de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.1.0-alpha01
, androidx.wear.compose:compose-material:1.1.0-alpha01
e androidx.wear.compose:compose-navigation:1.1.0-alpha01
. A versão 1.1.0-alpha01 contém estas confirmações.
Mudanças na API
- O parâmetro
contentDescription
do seletor agora é usado apenas para a opção selecionada e utiliza uma string anulável. Antes, era necessário transmitir um mapeamento de opção para a descrição do conteúdo, mas apenas a opção selecionada era usada (Ife6a7). - Fizemos melhorias na acessibilidade do seletor para que as telas de vários seletores sejam navegáveis com os leitores de tela e a descrição do conteúdo seja acessível (I64edb).
Correções de bugs
- Atualizamos as regras de perfil de referência empacotadas com a biblioteca Wear Compose (I9c694).
- Corrigimos a direção do gradiente para os ícones no modo da direita para a esquerda. Antes era "canto esquerdo de cima para canto direito de baixo", agora é "canto direito de cima para canto esquerdo de baixo" (Ic2e77).
- Atualizamos os gradientes padrão de
Chip/ToggleChip/Card
para alinhamento com a especificação de UX mais recente. OChipDefaults.gradientBackgroundChipColors
foi atualizado para começar em 50% do principal, em vez de 32,5%. OCardDefaults.cardBackgroundPainter
foi atualizado para começar em 30% do principal e terminar em 20% deonSurfaceVariant
. Antes, a variação deonSurfaceVariant
era de 20% a 10%. OToggleChip.toggleChipColors
muda de um gradiente linear de 75% a 32,5% de superfície ao principal para 0% a 50% (I43bbd). - Adicionamos uma cor de plano de fundo (
MaterialTheme.color.surface
) atrás dosChip/ToggleChips
que têm planos de fundo gradientes. Isso garante que eles fiquem visíveis corretamente no caso improvável de uma cor clara ser usada atrás deles (Ibe1a4, b/235937657). - Os itens do seletor agora estão sempre centralizados, corrigindo um bug que causava a mudança do alinhamento ao definir
gradientRatio
como zero (I712b8).
Versão 1.0
Versão 1.0.2
7 de setembro de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.2
, androidx.wear.compose:compose-material:1.0.2
e androidx.wear.compose:compose-navigation:1.0.2
. A versão 1.0.2 contém estas confirmações.
Correções de bugs
- Corrigimos a ordem z da posição e os indicadores de página no Scaffold. Como os indicadores ficam na parte de cima, eles não ficam ocultos por uma possível vinheta (Ib988f, b/244207528).
Versão 1.0.1
24 de agosto de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.1
, androidx.wear.compose:compose-material:1.0.1
e androidx.wear.compose:compose-navigation:1.0.1
. A versão 1.0.1 contém estas confirmações.
Correções de bugs
- Foi corrigido um bug de lógica na função
ScalingLazyColumn
que podia resultar em listas com um número pequeno de itens (geralmente 2) incapazes de concluir a inicialização e que ficavam transparentes (076c61).
Versão 1.0.0
27 de julho de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0
, androidx.wear.compose:compose-material:1.0.0
e androidx.wear.compose:compose-navigation:1.0.0
. A versão 1.0.0 contém estas confirmações.
Principais recursos da versão 1.0.0
- Esta é a primeira versão estável do Compose para Wear OS. Saiba mais.
- O Compose para Wear OS tem como base as principais bibliotecas do Compose, fornecendo outros componentes específicos e, quando adequado, implementações alternativas de componentes essenciais personalizados para wearables.
- Para ver uma lista dos principais componentes do Wear Compose, consulte as notas da versão do Compose para Wear OS Beta01.
Correções de bugs
- Animamos a visibilidade da vinheta ao mostrar/ocultar a caixa de diálogo para que ela seja consistente com a animação de ampliação atual (Ida33e).
- Corrigimos um bug em que uma divisão por zero podia ocorrer com alguns comportamentos de deslizar rapidamente durante a rolagem (I86cb6).
- Correção de um bug em
ChipDefaults.childChipColor()
para garantir que a cor de plano de fundo desativada seja totalmente transparente (I2b3c3, b/238057342).
Versão 1.0.0-rc02
22 de junho de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-rc02
, androidx.wear.compose:compose-material:1.0.0-rc02
e androidx.wear.compose:compose-navigation:1.0.0-rc02
. A versão 1.0.0-rc02 contém estas confirmações.
Correções de bugs
- Corrigimos a direção do gradiente para cards no modo da direita para a esquerda (RTL, na sigla em inglês), que antes era do canto esquerdo de cima ao direito de baixo e agora passou a ser do canto direito de cima ao esquerdo de baixo (Ic2e77).
- Atualizamos os gradientes padrão de
Chip/ToggleChip/Card
para alinhamento com a especificação de UX mais recente.ChipDefaults.gradientBackgroundChipColors
foi atualizado para começar em 50% do principal em vez de 32,5%.CardDefaults.cardBackgroundPainter
foi atualizado para começar em 30% do principal e terminar em 20% deonSurfaceVariant
(anteriormente a variação de término era de 20% a 10% de onSurfaceVariant).ToggleChip.toggleChipColors
, que antes era um gradiente linear que variava de 75% a 32,5% da superfície do principal, agora varia entre 0% e 50% (I43bbd). - Adicionamos uma cor de plano de fundo (
MaterialTheme.color.surface
) atrás dosChip/ToggleChips
que têm planos de fundo gradientes. Isso garante que eles fiquem visíveis corretamente no caso improvável de uma cor clara ser usada atrás deles (Ibe1a4, b/235937657). - Atualizamos as regras de perfil de referência empacotadas com a biblioteca Wear Compose (I9c694).
Versão 1.0.0-rc01
15 de junho de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-rc01
, androidx.wear.compose:compose-material:1.0.0-rc01
e androidx.wear.compose:compose-navigation:1.0.0-rc01
. A versão 1.0.0-rc01 contém estas confirmações.
Mudanças na API
- As interfaces em bibliotecas do Compose agora são criadas usando métodos de interface padrão do jdk8 (I5bcf1).
Correções de bugs
- Removemos a chamada explícita para
fillMaxWidth()
no cabeçalho da lista, já que ela não é necessária e pode resultar em problemas se umaScalinglazyColumn
tiver uma combinação de componentesListHeader()
eChip()
, porque a largura tende a aumentar/reduzir à medida que os itensListHeader
são rolados para dentro/fora da área de visualização (I37144, b/235074035) - Corrigimos um bug na
ScalingLazyColumn
que podia fazer com que os itens da lista não fossem exibidos corretamente até que fossem rolados caso o item zero da lista fosse grande demais (considerando a área de padding) (Ic6159, b/234328517). - Fizemos um pequeno ajuste no easing da
ScalingLazyColumn
quando os itens alcançam a borda da tela para atender às atualizações de especificações de UX. Valores antigos:CubicBezierEasing(0.25f, 0.00f, 0.75f, 1.00f)
. Novos valores:CubicBezierEasing(0.3f, 0f, 0.7f, 1f)
. Para manter o comportamento antigo, é possível substituir osscalingParams
daScalingLazyColumn
(Ie375c). - Adicionamos padding ao
CompactChip
para garantir que o tamanho da área de toque tenha pelo menos 48 dp de altura a fim de atender às diretrizes de acessibilidade do Material Design. Isso pode afetar os layouts que usamCompactChips
, porque eles ocupam mais espaço (I3d57c).
Versão 1.0.0-beta03
1º de junho de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-beta03
, androidx.wear.compose:compose-material:1.0.0-beta03
e androidx.wear.compose:compose-navigation:1.0.0-beta03
. A versão 1.0.0-beta03 contém estas confirmações.
Novos recursos
- Agora, a
ScalingLazyColumn
funciona no modo@Preview
do Compose (I3b3b6, b/232947354).
Mudanças na API
- Mudamos o valor padrão da propriedade
ScalingLazyColumn.horizontalAlignment
de "Start" paraCenterHorizontally
. O objetivo é garantir que, quando os itens da lista não preencherem a largura inteira da coluna, eles ficarão alinhados e terão o máximo de visibilidade. Para voltar a usar o comportamento anterior, definahorizontalAlignment = Alignment.Start
(I9ed4b).
Problemas conhecidos
- A altura de toque do CompactChip é inferior às diretrizes de acessibilidade do Material Design. Isso será corrigido na próxima versão (lançada em 15 de junho). Se você usa o CompactChip, isso afeta seus layouts, porque esse elemento inclui mais padding nas partes de cima e de baixo. Ajuste e teste seus layouts ou consulte os comentários sobre o bug para encontrar uma solução alternativa (b/234332135).
Correções de bugs
- Nova demonstração para animar a adição ou remoção de um texto inicial em um
TimeText
(I16d75). - Foram adicionados testes a
HorizontalPageIndicator.PagesState
(I64ed0). - Atualização de
TimeText
, deixando-o mais próximo das especificações de UX (Ib7ea1).
Versão 1.0.0-beta02
18 de maio de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-beta02
, androidx.wear.compose:compose-material:1.0.0-beta02
e androidx.wear.compose:compose-navigation:1.0.0-beta02
. A versão 1.0.0-beta02 contém estas confirmações.
Novos recursos
- Agora, o seletor sempre responde a eventos de rolagem, mesmo no modo somente leitura. Isso evita que os usuários precisem escolher um seletor antes de rolar a página. No modo somente leitura, as opções diferentes das selecionadas no momento são ocultadas por um paliativo em
gradientColor
(I72925). - Mudamos o comportamento da UX de
Chip/ToggleChip/CompactChip/SplitToggleChip
para impedir quefillMaxWidth
aconteça por padrão. Em vez disso, ele se ajusta ao conteúdo. Para manter o comportamento anterior, basta adicionarmodifier = Modifier.fillMaxWidth()
(I60a2c, b/232206371).
Correções de bugs
- O construtor
CurvedTextStyle
que usa umTextStyle
agora também respeita ofontWeight
. Isso pode ser adicionado aos métodos de construção e de cópia em futuras revisões da API (Ieebb9). - O recurso "deslizar da borda" foi melhorado. Quando o
Modifier.edgeSwipeToDismiss
é usado e um gesto de deslizar para a esquerda é acionado da área da borda, ele não aciona mais o recurso "deslizar para dispensar" quando a direção do gesto muda para a direita. Antes, era possível acionar o "deslizar para dispensar" deslizando para a esquerda e, em seguida, para a direita (I916ea). - Agora, o
HorizontalPageIndicator
mostra até seis páginas na tela. Se houver mais de seis páginas no total, ele vai mostrar um indicador com metade do próprio tamanho à esquerda ou à direita, com uma transição suave entre as páginas (I2ac29). - O comportamento de ajuste padrão foi melhorado em
ScalingLazyColumn
ePicker
(I49539). - O recurso "deslizar da borda" foi melhorado. Quando o
Modifier.edgeSwipeToDismiss
é usado, o recurso "deslizar para dispensar" só é acionado quando o primeiro toque acontece na borda e é movido para a direita. Antes, era possível acionar o "deslizar para dispensar" deslizando de qualquer parte da tela quando a rolagem chegava ao início (I8ca2a).
Versão 1.0.0-beta01
11 de maio de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-beta01
, androidx.wear.compose:compose-material:1.0.0-beta01
e androidx.wear.compose:compose-navigation:1.0.0-beta01
. A versão 1.0.0-beta01 contém estas confirmações.
Novidades no Compose para Wear OS 1.0
A versão 1.0.0-beta01
do Compose para Wear OS é um marco importante porque a biblioteca tem todos os recursos e a API está bloqueada.
Os componentes do Compose Material para Wear na versão 1.0 incluem:
- Material Theme: usado para substituir o
MaterialTheme
do Compose para dispositivos móveis. Fornece cores, formas e tipografia para a criação de componentes em wearables que implementam as diretrizes de UX do Material Design por padrão. Button
,CompactButton
eToggleButton
: botões que oferecem um único slot para usar ícones, imagens ou textos curtos de no máximo três caracteres. De formato circular e em tamanhos recomendados para botões padrão, grandes ou pequenos.CompactButton
oferece um único slot para usar qualquer conteúdo (ícone, imagem ou texto) e tem formato circular e com plano de fundo muito pequeno.CompactButton
tem um preenchimento transparente opcional ao redor do plano de fundo que aumenta a área clicável.ToggleButton
é um botão que oferece um único slot para qualquer conteúdo (texto curto, ícone ou imagem) e tem estados ativado/desativado (marcado/desmarcado) com cores e ícones diferentes para mostrar se está selecionado ou não.- Cards: usados para mostrar informações sobre apps, por exemplo, notificações. Design flexível para diferentes casos de uso com
AppCard
eTitleCard
, oferecendo diferentes layouts e suporte para imagens como conteúdo ou plano de fundo do cartão. - Chips: componentes em forma de estádio semelhantes a botões, mas com uma área maior e vários slots para rótulos primários e secundários e ícones. Têm tamanhos diferentes e suporte para imagens como planos de fundo.
- ToggleChips e SplitToggleChips: um ícone com um estado marcado/desmarcado e um slot
ToggleControl
adicionado para mostrar um ícone, como uma chave ou um botão de opção que exibe o estado marcado do componente. Além disso, oSplitToggleChip
tem duas áreas tocáveis, uma clicável e uma alternável. - CircularProgressIndicator: indicador de progresso do Wear Material com duas variações. A primeira expressa a proporção de conclusão de uma tarefa em andamento e oferece suporte para uma lacuna na faixa circular entre os ângulos de início e fim. A segunda indica o progresso indeterminado de um tempo de espera não especificado.
- curvedText: faz parte da DSL para descrever
CurvedLayouts
, junto comcurvedRow
ecurvedColumn
, e mostrar componentes em torno de dispositivos circulares. Confira a Wear Component Foundation abaixo para saber mais detalhes sobreCurvedLayout
eCurvedModifier
. Ela desempenha um papel semelhante aos modificadores para cenários não curvos e permite a configuração de vários aspectos de layout, padding, gradientes, entre outros. - Caixa de diálogo, alerta e confirmação: a caixa de diálogo aparece em tela cheia, sobreposta a qualquer outro conteúdo e oferece suporte ao recurso de deslizar para dispensar. É necessário um único slot que precisa ser um conteúdo específico de caixa de diálogo do Wear Material, como alerta ou confirmação. O alerta é um conteúdo específico de caixa de diálogo com espaços para ícone, título e mensagem. Ele tem sobrecargas para dois botões para aceitar ou recusar, mostrados lado a lado ou um slot para um ou mais chips empilhados verticalmente. A confirmação é um conteúdo específico de caixa de diálogo que mostra uma mensagem por uma determinada duração. Ela tem um espaço para um ícone ou uma imagem, que pode ser animada.
- HorizontalPageIndicator: mostra a posição horizontal da página de forma adequada ao formato do wearable. Desenvolvido para usar a tela cheia e mostrar um indicador curvo em dispositivos redondos. Pode ser usado com o visualizador de páginas Accompanist.
- Icon: uma implementação do Wear de "Icon" que usa cores e alfa do Wear Material Theme. Para ver um ícone clicável, consulte "Button" ou "Chip".
- Picker: mostra uma lista rolável de itens para escolher. Por padrão, os itens são repetidos "infinitamente" nas duas direções. Pode aparecer no modo somente leitura para ocultar opções não selecionadas.
- PositionIndicator: mostra a posição de rolagem ou outra indicação de posição de maneira adequada ao formato do wearable. Desenvolvido para usar a tela cheia e mostrar um indicador curvo em dispositivos redondos.
- Scaffold: implementa a estrutura visual básica do layout do Material Design para Wear. Esse componente fornece uma API para reunir vários componentes do Wear Material, como
TimeText
,PositionIndicator
eVignette
, que criam a tela, garantindo a estratégia de layout adequada e coletando os dados necessários para que eles funcionem juntos corretamente. - ScalingLazyColumn: um componente de lista de rolagem/olho de peixe que forma uma parte importante da linguagem do Material Design para Wear. Fornece efeitos de escalonamento e transparência aos itens de conteúdo. O componente
ScalingLazyColumn
foi projetado para processar um grande número de itens de conteúdo, que só são materializados e compostos quando necessário. - Slider: permite que os usuários escolham um valor em um intervalo. O intervalo é mostrado como uma barra, que pode ser exibida com separadores.
- Stepper: um componente de tela cheia que permite aos usuários selecionar um intervalo de valores, usando os botões de aumentar/diminuir nas partes de cima e de baixo da tela, com um slot no meio para "Text" ou "Chip".
- SwipeToDismissBox: processa o gesto de deslizar para dispensar. Ele usa um único slot para o plano de fundo, que aparece somente durante o gesto de deslizar, e o primeiro plano. Como opção, ele pode ser combinado com a biblioteca de navegação do AndroidX usando
SwipeDismissableNavHost
. Consulte a biblioteca Wear Compose Navigation abaixo. - Text: uma implementação do Wear do componente Compose Material Text, que usa cores e alfa do Wear Material Theme.
- TimeText: um componente para mostrar o horário e o status do aplicativo na parte de cima da tela. Ajusta o formato da tela usando o texto curvado em telas redondas.
Vignette: um tratamento de tela para uso no Scaffold que desfoca as partes de cima e de baixo da tela quando o conteúdo rolável está em uso.
Os componentes abaixo também são incluídos na Wear Compose Foundation:
CurvedLayout: o
CurvedLayout
do Wear Foundation é um elemento combinável de layout que posiciona os filhos em um arco, girando-os conforme necessário. Isso é semelhante a um layout de linha curvado em um segmento de uma coroa circular. O conteúdo de umCurvedLayout
não é uma lambda de composição, mas é uma linguagem específica do domínio (DSL, na sigla em inglês). Todos os elementos na DSL do CurvedLayout oferecem suporte a um parâmetro modificador opcional, criado deCurvedModifier
.basicCurvedText: um elemento da DSL do
CurvedLayout
,basicCurvedText
permite que os desenvolvedores escrevam facilmente texto curvado seguindo a curvatura de um círculo, geralmente na borda de uma tela circular. ObasicCurvedText
só pode ser criado noCurvedLayout
para garantir a melhor experiência, como a capacidade de especificar o posicionamento e usarCurvedModifiers
. Na maioria dos casos, curvedText deve ser escolhido, já que usa temas do Material Design.curvedComposable: envolve o conteúdo de composição normal para que possa ser usado com
CurvedLayout
. SecurvedComposable
tiver vários elementos, eles vão ser mostrados uns sobre os outros, como uma caixa. Para colocar vários elementos combináveis em uma curva, envolva cada um comcurvedComposable
.curvedRow e curvedColumn: semelhantes a Row e Column,
curvedRow
ecurvedColumn
podem ser aninhados em umCurvedLayout
para dispor os elementos conforme necessário. Para um elementocurvedRow
, a direção do layout angular e o alinhamento radial podem ser especificados. Para um elementocurvedColumn
, o alinhamento angular e a direção radial podem ser especificados.CurvedModifier: todos os componentes curvos aceitam um parâmetro modificador que pode ser criado usando
CurvedModifier
. Há suporte para planos de fundo, tamanho, peso e padding.O componente abaixo também está incluído no Wear Compose Navigation.
SwipeDismissableNavHost: oferece um lugar na hierarquia do Compose para que a navegação independente ocorra, com a navegação para trás fornecida por um gesto de deslizar. O conteúdo aparece em uma
SwipeToDismissBox
, mostrando o nível de navegação atual. Durante um gesto de deslizar para dispensar, o nível de navegação anterior, se houver, aparece em segundo plano.Consulte as notas das versões anteriores para ver mais detalhes sobre o que foi lançado.
Mudanças na API
- Foram adicionadas funções
CurvedModifier.padding*
. Elas são usadas para especificar mais espaço a ser adicionado ao redor de um componente curvo (I4dbb4). - A classe interna
CompositionLocal
foi removida (I42490). - Adicionamos valores constantes para os tamanhos dos ícones
Button
,CompactButton
eToggleButton
, conforme orientação (I57cab). - O parâmetro ativado foi adicionado a
AppCard
eTitleCard
. Agora eles têm uma API semelhante a Cards doandroidx.compose.material
. Quando o parâmetro é definido como "false" (falso), o cartão não é clicável (Idc48d, b/228869805).
Correções de bugs
- Agora, o Stepper desativa os botões de diminuir e aumentar quando os limites mínimo ou máximo são atingidos. Ele também aplica ContentAlpha.disabled ao iconColor (I4be9f).
- Adicionamos padding de 1 dp ao conteúdo do Picker quando mostrado com um gradiente para evitar instabilidade no texto que aparece ao deslizar (I0b7b9).
- Foram adicionados testes de captura de tela para
PositionIndicator
(I5e8bc). - Foram adicionados mais testes para
AppCard
eTitleCard
(I85391, b/228869805).
Versão 1.0.0-alpha21
20 de abril de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha21
, androidx.wear.compose:compose-material:1.0.0-alpha21
e androidx.wear.compose:compose-navigation:1.0.0-alpha21
. A versão 1.0.0-alpha21 contém estas confirmações.
Novos recursos
- Adicionados novos modificadores em curva para especificar o segundo plano de um elemento em curva:
CurvedModifier.background
,.radialGradientBackground
e.angularGradientBackground
(I8f392). - Permissão para que o modo flutuante de texto em curva (clip/reticências/visível) seja especificado (I8e7aa).
- Adição do modificador
CurvedModifier.weight
, semelhante ao do Compose. Ele pode ser usado em filhos de curvadRow e CurvedLayout (para largura) e filhos de curvadColumn (para altura) (I8abbd). - Adição dos modificadores
CurvedModifier.size
,.angularSize
e.radialSize
para especificar o tamanho de um elemento em curva (I623c7).
Mudanças na API
- Reordenação dos parâmetros para garantir que o segundo plano fique antes da cor de forma consistente em toda a API Wear Compose (I43208).
- Remoção dos parâmetros
insideOut
e sentido horário e substituição por constantes mais expressivas em novas classes. A direção do layout em curva agora tem reconhecimento deLayoutDirection
e é herdada quando não especificada (If0e6a). - Substituímos
autoCenter: Boolean
porautoCenter: AutoCentringParams
para corrigir um problema de API noScalingLazyColumn
(Ia9c90). - Renomeamos
iconTintColor
etoggleControlTintColor
comoiconColor
etoggleControlColor
em toda a API (Chip/ToggleChip/Dialog/Slider/Stepper/...) quando a cor é aplicada ao slot icon/toggleControl (Ied238). - Reescreva o tipo enumerado
PageIndicatorStyle
na classe de valor (I2dc72). - Adicionamos
RowScope/ColumnScope/BoxScope
a alguns dos slots dos nossos Composables para indicar aos desenvolvedores quais são as suposições de layouts. Isso permite que os desenvolvedores usem outros modificadores em alguns conteúdos de slot e evita a necessidade de fornecer mais elementos de layout. Além disso, fizemos algumas pequenas atualizações nas cores do AppCard/TitleCard para quetimeColor
eappColor
sejam padronizadas comocontentColor
. Essas propriedades ainda podem ser substituídas individualmente, se necessário (I26b59). - O objeto
SwipeToDismissBoxState.Companion
foi definido como privado (I39e84). - Correção da ordem dos parâmetros para
InlineSlider
eStepper
. Uma mudança simples para seguir as diretrizes da API (I11fec). - Removemos o objeto Saver para
SwipeToDismissBoxState
, porque ele não foi usado (Ifb54e). - Atualizamos
CompactChip
para alinhamento com a especificação de UX mais recente. O padding foi reduzido na horizontal = 12.dp e na vertical = 0.dp. A fonte do marcador foi alterada de botão para legenda 1. Os tamanhos recomendados de ícones são 20x20 quando o ícone e o rótulo estão presentes e 24x24 para um ícone compacto somente. Para o caso de uso de ícone somente, também garantimos que o ícone esteja alinhado no centro (Iea2be). - Adicionamos vários campos novos a
ScalingLazyListLayoutInfo
para permitir que os desenvolvedores saibam a quantidade decontentPadding
eautoCenteringPadding
que foi aplicada. Eles podem ser úteis para desenvolvedores ao calcular deslizamento/rolagem (I7577b). - Implementamos transições de entrada e saída na caixa de diálogo. Um parâmetro
showDialog
foi adicionado, e a caixa de diálogo agora controla a própria visibilidade. Isso permite que a caixa de diálogo execute as animações de introdução e conclusão quando estiver sendo mostrada/oculta. A animação "Outro" não é executada quando o usuário sai da caixa de diálogo pelo recurso de deslizar para dispensar. Também adicionamos um valor padrão para o estado na sobrecargaSwipeToDismissBox
adicionada recentemente (I682a0). - Para oferecer melhor suporte à internacionalização e à acessibilidade, mudamos
ToggleChip
eSplitToggleChip
para que não tenham mais um padrão para o slottoggleControl
. Também mudamosToggleChipDefaults
para que os métodos a seguir retornem ImageVector em vez de Icon (como eles não retornam mais @Composables, foram modificados para começar com letra minúscula),SwitchIcon()->switchIcon()
,CheckboxIcon->checkboxIcon()
eRadioIcon()->radioIcon()
. Isso permite e incentiva os desenvolvedores a criar os própriosIcon()
combináveis com um conjuntocontentDescription
adequado (I5bb5b). - Adicionamos um parâmetro
SwipeDismissableNavHostState
aSwipeDismissableNavHost
. Isso oferece suporte ao deslize de borda em telas usadas como destinos de navegação porqueSwipeToDismissBoxState
agora pode ser suspenso e usado para inicializarSwipeDismissableNavHostState
eModifier.edgeSwipeToDismiss
em telas que exigem deslize de borda (I819f5, b/228336555).
Correções de bugs
- Garanta que os layouts em curva sejam atualizados quando necessário (Ie8bfa, b/229079150).
- Correção de bug para https://issuetracker.google.com/issues/226648931 (Ia0a0a, b/226648931).
- Remoção de anotações experimentais desnecessárias (I88d7e).
Versão 1.0.0-alpha20
6 de abril de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha20
, androidx.wear.compose:compose-material:1.0.0-alpha20
e androidx.wear.compose:compose-navigation:1.0.0-alpha20
. A versão 1.0.0-alpha20 contém estas confirmações.
Novos recursos
- Foi adicionado o modificador
edgeSwipeToDismiss
paraSwipeToDismiss
. Ele permite queswipeToDismiss
fique ativo somente na borda esquerda da janela de visualização. Ele é usado quando o centro da tela precisa lidar com paginação horizontal, como rolar um mapa ou deslizar horizontalmente entre as páginas (I3fcec, b/200699800).
Mudanças na API
- Implementação básica de
CurvedModifiers
. Isso abre uma forma de apresentar maneiras de personalização de conteúdo em curva. Porém, nenhumCurvedModifiers
foi fornecido até agora, e a capacidade de criar modificadores personalizados pode estar disponível mais tarde (I9b8df). - A documentação do modificador
EdgeSwipe
e os valores padrão foram atualizados para melhor compreensão (I6d00d). - O slot
PageIndicator
foi adicionado ao Scaffold. Ao adicionarPageIndicator
diretamente ao Scaffold, podemos garantir que ele vai ser mostrado corretamente em dispositivos circulares (Ia6042). - Removidos os ícones padrão dos parâmetros
InlineSlider
e Stepper. Isso ajuda os desenvolvedores a prestar mais atenção aos requisitos de localização e acessibilidade. Os usos de ícones padrão foram mostrados em demonstrações e exemplos (I7e6fd). - Os nomes dos parâmetros Trailing and Leading foram substituídos por Start e End em TimeText (Iaac32).
- Adicionamos uma sobrecarga
SwipeToDismissBox
com um parâmetroonDismissed
para oferecer suporte ao uso comum de acionar um evento de navegação quando o gesto de deslizar for concluído (I50353, b/226565726). - Removidas as anotações
ExperimentalWearMaterialApi
do uso deTimeText
(Ide520). - Marcamos as interfaces de informações e o escopo
ScalingLazyList/Column
como selados, porque não se destinam a implementações de desenvolvedores externos. Isso permite que novos membros sejam adicionados no futuro, sem mudanças interruptivas binárias (I7d99f). - Adicionamos uma nova propriedade
flingBehaviour
ao seletor e um métodoPickerDefaults.flingBehaviour()
para ativar a configuração do comportamento de rolagem, por exemplo, adicionar suporte a RSB.PickerState
agora implementa a interfaceScrollableState
(Ib89c7).
Correções de bugs
- Atualizadas as regras de perfil de valor de referência do Android Runtime (ART) para as bibliotecas do Wear Compose. O ART pode aproveitar as regras de perfil nos dispositivos para compilar um subconjunto específico do aplicativo com antecedência a fim de melhorar o desempenho dele. Isso não vai afetar aplicativos depuráveis (Iaa8ef).
- Melhoria na documentação (I2c051).
Versão 1.0.0-alpha19
23 de março de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha19
, androidx.wear.compose:compose-material:1.0.0-alpha19
e androidx.wear.compose:compose-navigation:1.0.0-alpha19
. A versão 1.0.0-alpha19 contém estas confirmações.
Mudanças na API
- Renomeação de
CurvedRow
paraCurvedLayout
e reformulação para ser um escopo com uma DSL. Com essa DSL, é possível especificar layouts curvos mais complexos, usando uma série decurvedRow
ecurvedColumn
aninhadas, que são os equivalentes em layout curvo de Row e Column. Dentro desses elementos de layout, três elementos podem ser usados:curvedComposable
, para adicionar qualquer @Composable;basicCurvedText
, texto curvado da base; ecurvedText
, para usar texto curvado com reconhecimento do Material do Wear (Ib776a). - Lado do
PositionIndicator
tornou-se configurável. Agora, a posição básica de PositionIndicator pode ser configurada como End, que reconhece direção do layout; OppositeRsb, que considera a rotação da tela, para se posicionar em frente ao RSB físico; ou como as absolutas para a Left e Right (I2f1f3). - Para o
SwipeToDismissBox
, renomeamos oSwipeDismissTarget
original paraSwipeToDismissValue.Default
eSwipeDismissTarget.Dismissal
paraSwipeToDismissValue.Dismissed
. Também movemosSwipeToDismissBoxDefaults.BackgroundKey
eSwipeToDismissBoxDefaults.ContentKey
paraSwipeToDismissKeys.Background
,SwipeToDismissKeys.Content
, respectivamente (I47a36). - Adicionamos um modo somente leitura ao Picker para telas com vários seletores em que apenas um seletor pode ser editado por vez. Quando o Seletor é somente leitura, ele mostra a opção selecionada e um rótulo, caso tenha sido fornecido (I879de).
- O
SwipeToDismissBoxState
foi refatorado para restringir o escopo deExperimentalWearMaterialApi
aModifier.swipeable
eSwipeableState
, que agora são usados internamente.SwipeToDismissBoxState
agora temcurrentValue
,targetValue
,isAnimationRunning
esnapTo
para oferecer suporte a casos de uso comuns. Informe caso precise de mais propriedades. Também foi corrigido o comportamento deSwipeableState
no caso em que o deslocamento de deslize está dentro de um erro de arredondamento de uma âncora (I58302).
Correções de bugs
- O código foi corrigido e simplificado para detectar se o conteúdo de uma
ScalingLazyColumn
pode ser rolado. Isso é usado para decidir se uma barra de rolagem vai ser exibida ou não (I7bce0). - Foi corrigido um bug no indicador de posição quando usado com mais de um estado e a alternando entre eles (I320b5).
- Atualizamos as fontes de tipografia/fontes de tema padrão do Compose para Wear OS, de acordo com nossas orientações mais recentes de UX. Observe que display1 (40.sp) e display2 (34.sp) são menores que os valores anteriores, e várias outras pequenas atualizações na altura e no espaçamento entre linhas foram feitas (Ie3077).
- Adicionamos resistência a
SwipeToDismissBox
para que o movimento só aconteça ao deslizar para dispensar e não na direção oposta (Ifdfb9). - Mudamos alguns dos valores padrão de parâmetro para que as funções
CircularProgressIndicator
fiquem de acordo com a orientação de UX do Material Design para Wear. Para a versão com controle Spinner/Indeterminant, o tamanho (40 -> 24 dp), o parâmetro indicatorColor (primary -> onBackground), a transparência trackColor (30% -> 10%) e a largura do traço (4 -> 3 dp) foram atualizados. Para a versão Progress/Determinate, a transparência trackColor (30%-> 10%) foi atualizada (I659cc). - Atualizamos os parâmetros de dimensionamento padrão do
ScalingLazyColumn
de acordo com as especificações de UX do Material Design mais recentes. Visualmente, isso faz com que os itens da lista comecem a ser dimensionados para o centro dela, mas que sejam menos dimensionados na borda do que antes (Ica8f3). - Alguns ajustes em
ScalingLazyColumnDefaults.snapFlingBehavior
para melhorar o final da animação (If3260).
Versão 1.0.0-alpha18
9 de março de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha18
, androidx.wear.compose:compose-material:1.0.0-alpha18
e androidx.wear.compose:compose-navigation:1.0.0-alpha18
. A versão 1.0.0-alpha18 contém estas confirmações.
Mudanças na API
- Várias melhorias no PositionIndicator: ShowResult foi renomeado como PositionIndicatorVisibility. Melhorias de desempenho para evitar cálculos quando não são necessários (Iaed9d).
- Atualização da cor recomendada para o
SplitToggleChip
. Agora, o SplitToggleChip tem um plano de fundo de cor sólida quando selecionado ou desmarcado. A cor do ToggleControl é a principal indicação de que o componente foi verificado ou não. Adicionamos um novo elementoToggleDefaults.splitToggleChipColors()
para oferecer suporte ao novo esquema de cores. Também simplificamos os métodostoggleChipColors()
removendo a splitBackgroundOverlayColor (I7e66e). - Adicionamos unadjustedSize ao elemento
ScalingLazyListItemInfo
, porque não é seguro calcular o tamanho original do item usando o tamanho escalonado e o fator de escalonamento, devido à precisão matemática do ponto flutuante (I54657, b/221079441). HorizontalPageIndicator
foi adicionado. Ele representa o número total de páginas e uma página selecionada. O indicador pode ser linear ou curvado, dependendo da forma do dispositivo. Ele também oferece suporte à personalização da forma do indicador, que define como cada indicador é representado visualmente (Iac898).- Atualizamos
PickerState
para que o numberOfOptions possa ser atualizado. Ele oferece suporte a casos de uso, como umDatePicker
, em que o número de dias no mês muda dependendo do mês selecionado. O parâmetro construtor do PickerState mudou para o initialNumberOfOptions correspondente (Iad066). - O
PositionIndicator
fica oculto quando ele é uma barra de rolagem que não pode rolar (Id0a7f). - Para manter a consistência com o Scaffold, nosso componente da caixa de diálogo em tela cheia agora mostra um
PositionIndicator
e umaVignette
. Também estamos usando aScalingLazyColumn
em vez daColumn
, o que significa que o conteúdo da caixa de diálogo agora está noScalingLazyListScope
e geralmente precisa ser incluído pelo item { /* content */ }. A caixa de diálogo oferece suporte ao parâmetro verticalArrangement conforme necessário (Idea13). - Mudamos o nome da propriedade toggleIcon de
ToggleChip
eSplitToggleChip
para toggleControl, a fim de seguir melhor o Material Design e ajudar os designers e desenvolvedores a navegar pela API (If5921, b/220129803). - Adicionamos uma nova entrada caption3 à Typology.Caption3 do Wear Material Theme, que é uma fonte pequena usada para textos mais longos, como textos jurídicos (I74b13, b/220128356).
Correções de bugs
- A animação de ajuste para quando chega ao destino (Idb69d).
- Mudanças no PositionIndicator são animadas agora (I94cb9).
- Com base no feedback da IU/UX, mudamos a propriedade autoCentering da
ScalingLazyColumn
para que ela forneça apenas o espaço suficiente de forma que os itens com índiceScalingLazyListState.initialCenterItemIndex
ou mais recentes possam ser totalmente rolados até o centro da janela de visualização. Isso permite que os desenvolvedores posicionem no centro da tela um ou dois itens, que não podem ser rolados, sobre o item inicialmente no centro. Isso significa que umaScalingLazyColumn
da autoCentering não vai conseguir rolar acima doinitialCenterItemIndex/initialCenterItemScrollOffset
(I22ee2). - Adicionamos uma demonstração para o seletor de data e corrigimos um bug no
PickerState
, em que a initialSelectedOption não era aplicada até o seletor ser exibido (Id0d7e). - Para reduzir o corte de itens maiores da
ScalingLazyColumn
em telas redondas, aumentamos o preenchimento de conteúdo horizontal padrão de 8 para 10 dp (I0d609). - Confira se o
PositionIndicator
é exibido ao rolar (Ied9a2).
Versão 1.0.0-alpha17
23 de fevereiro de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha17
, androidx.wear.compose:compose-material:1.0.0-alpha17
e androidx.wear.compose:compose-navigation:1.0.0-alpha17
. A versão 1.0.0-alpha17 contém estas confirmações.
Novos recursos
- Adicionamos suporte a ajuste, que pode ser usado com o
ScalingLazyColumn
. DefinaflingBehavior = ScalingLazyColumnDefaults.flingWithSnapBehavior(state)
para ativar o suporte ao ajuste (I068d3, b/217377069). - Adicionamos demonstrações do seletor usado para selecionar um horário no relógio de 24 horas ou 12 horas (Ie5552).
Mudanças na API
- Um problema com fontes e estilos personalizados do
TimeText
em dispositivos quadrados foi corrigido (Iea76e). ScalingLazyListLayoutInfo
agora temreverseLayout
,viewportSize
e propriedades de orientação correspondentes àquelas deLazyListLayoutInfo
(I4f258, b/217917020).ScalingLazyColumn
agora tem uma propriedadeuserScrollEnabled
correspondente àquela daLazyList
(I164d0, b/217912513).- Os seletores agora têm um gradiente na parte de cima e de baixo por padrão (Iab92a).
Correções de bugs
- Modificamos
ScalingLazyColumn
para que não preencha mais todo o espaço no pai. Em vez disso, ela vai ficar com o tamanho do conteúdo. Isso a torna consistente com o comportamento daLazyColumn
. Se você quiser restabelecer o comportamento antigo, transmitaModifier.fillMaxWidth()/width()/widthIn()
para oScalingLazyColumn
(I51bf8). - Melhoramos a mensagem de exceção em
SwipeDismissableNavHost.kt
que era acionada se a backstack de navegação estivesse vazia (I1b1dc).
Versão 1.0.0-alpha16
9 de fevereiro de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha16
, androidx.wear.compose:compose-material:1.0.0-alpha16
e androidx.wear.compose:compose-navigation:1.0.0-alpha16
. A versão 1.0.0-alpha16 contém estas confirmações.
Novos recursos
- O
CircularProgressIndicator
foi adicionado. Os indicadores de progresso exibem a duração de um processo ou um tempo de espera não especificado. Eles oferecem suporte para uma lacuna (corte) para TimeText ou outros componentes, se usados em tela cheia (Iab8da).
Mudanças na API
- Os seletores agora têm um parâmetro
flingBehavior
. O valor padrão os ajusta à opção mais próxima ao rolar ou deslizar (I09000). - Uma API de números inteiros foi acrescentada a InlineSlider e Stepper (I1b5d6).
Correções de bugs
- O initialCenterItemIndex padrão foi alterado de
ScalingLazyListState
de 0 para maior que 1. Isso significa que, a menos que ele seja modificado na construção do estado paraScalingLazyListState.rememberScalingLazyListState(initialCenterItemIndex =
.)
, o segundo item da lista (índice = 1) vai ser colocado no centro da janela de visualização na inicialização, e o primeiro (índice = 0) vai ser colocado antes dele. Isso permite um melhor efeito visual padrão, já que a maior parte da janela de visualização será preenchida com itens de lista (I0c623, b/217344252) - Reduzimos de 10% para 5% o
extraPadding
padrão deScalingLazyColumn
, que é fornecido para garantir que haja vários itens de lista a serem mostrados, mesmo quando o tamanho de alguns deles é reduzido. Isso evita escrever itens adicionais na lista que podem não aparecer na janela de visualização. Se a função scalingParams não padrão estiver sendo usada (escalonamento mais extremo, por exemplo), o desenvolvedor vai poder ajustar o padding extra usandoviewportVerticalOffsetResolver
(I76be4). - Correção de um problema com TimeText em várias linhas no dispositivo quadrado (Ibd3fb).
- Modificamos
ScalingLazyColumn
para que não preencha mais todo o espaço no pai. Em vez disso, ela vai ficar com o tamanho do conteúdo. Isso a torna consistente com o comportamento deLazyColumn
. Se você quiser restabelecer o comportamento antigo, transmitaModifier.fillMaxSize()
paraScalingLazyColumn
. OBSERVAÇÃO: essa mudança está incompleta e vai ser resolvida em uma etapa posterior na próxima versão Alfa (I3cbfa).
Versão 1.0.0-alpha15
26 de janeiro de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha15
, androidx.wear.compose:compose-material:1.0.0-alpha15
e androidx.wear.compose:compose-navigation:1.0.0-alpha15
. A versão 1.0.0-alpha15 contém estas confirmações.
Mudanças na API
- Adicionamos uma nova propriedade
autoCentering
ao componenteScalingLazyColumn
. Quando definida como verdadeira (o padrão), isso garante que todos os itens, incluindo o primeiro e o último, possam ser rolados de modo que fiquem visíveis no centro da janela de visualização das listas. Se você usa a centralização automática, é recomendável definir o padding de conteúdo vertical como 0.dp. Se a propriedade autoCentering e o padding de conteúdo vertical forem fornecidos, eles vão fazer com que mais espaço fique disponível antes do primeiro e depois do último item da lista, permitindo que eles sejam rolados ainda mais (I2a282, b/214922490). - Adicionamos um componente
Dialog
, que permite que qualquer elemento combinável acione uma caixa de diálogo em tela cheia sobre outro conteúdo. Quando a caixa é mostrada, é possível deslizar para dispensar e mostrar o conteúdo do pai dela em segundo plano durante o gesto de deslizar. É esperado que o conteúdo da caixa sejaAlert
ouConfirmation
(renomeados dos componentes anterioresAlertDialog
eConfirmationDialog
).Alert
,Confirmation
eDialog
estão todos no pacoteandroidx.wear.compose.material.dialog
. Os alertas e a confirmação podem ser usados como destinos de navegação. Também há a adição de ColumnScope aos parâmetros Alert e Confirmation conforme necessário (Ia9014). - Removemos
onSurfaceVariant2
do Compose para as cores de tema do Material do WearOS e substituímos os usos na biblioteca poronSurfaceVariant
(Icd592). - Adição de um método para selecionar programaticamente uma opção no
PickerState
. A opção selecionada inicialmente agora também pode ser especificada ao criar umPickerState
(I92bdf). - Adicionamos suporte à personalização do comportamento de deslizar rapidamente do componente
ScalingLazyColumn
(I1ad2e, b/208842968). - Adicionamos
NavController.currentBackStackEntryAsState()
à bibliotecaWear.Compose.Navigation
(If9028, b/212739653). Modifier.onRotaryScrollEvent()
eModifier.onPreRotaryScrollEvent()
foram adicionados para dispositivos Wear com um botão lateral giratório (I18bf5, b/210748686).
Versão 1.0.0-alpha14
12 de janeiro de 2022
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha14
, androidx.wear.compose:compose-material:1.0.0-alpha14
e androidx.wear.compose:compose-navigation:1.0.0-alpha14
. A versão 1.0.0-alpha14 contém estas confirmações.
Novos recursos
Adicionamos vários métodos a
ScalingLazyListState
para permitir que o desenvolvedor controle a rolagem para itens específicos da lista, além de definir o deslocamento e o item inicial dela.Como parte dessa mudança, também modificamos o ScalingLazyList para que ele fique orientado próximo ao centro da janela de visualização do ScalingLazyList em vez de estar no início da janela de visualização.
Uma nova propriedade
anchorType: ScalingLazyListAnchorType = ScalingLazyListAnchorType.ItemCenter
foi adicionada aScalingLazyList
para controlar se o centro (ScalingLazyListAnchorType.ItemCenter
) ou aEdge
(ScalingLazyListAnchorType.ItemStart
) precisam estar alinhados à linha central da janela de visualização.Como resultado,
ScalingLazyListItemInfo.offset
eScalingLazyListItemInfo.adjustedOffset
mudaram e agora refletem o deslocamento do item em relação à posição dele e aoanchorType
da lista. Por exemplo, para umaScalingLazyColumn
com umanchorType
doItemCenter
e um item de lista posicionado no meio na linha central da janela de visualização, o deslocamento seria0
.Os novos métodos são
scrollTo
,animatedScrollTo
,centerItemIndex
ecenterItemOffset
(I61b61).Adicionamos um gerenciador de botão "Voltar" ao
SwipeDismissableNavHost
para que, ao pressionar "Voltar", você navegue até o nível anterior na hierarquia de navegação (I5b086, b/210205624).
Versão 1.0.0-alpha13
15 de dezembro de 2021
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha13
, androidx.wear.compose:compose-material:1.0.0-alpha13
e androidx.wear.compose:compose-navigation:1.0.0-alpha13
. A versão 1.0.0-alpha13 contém estas confirmações.
Mudanças na API
- Tornamos o
RangeIcons
interno, referenciado internamente porInlineSlider
eStepper
(I927ec).
Correções de bugs
Foi corrigido um problema em que o
SwipeDismissableNavHost
adicionava um destino à hierarquia do Compose antes de alcançar o estado de ciclo de vidaCREATED
(criado), resultando em umaIllegalStateException
. Essa correção era um pré-requisito para atualizar a dependência denavigation-compose
para2.4.0-beta02
e muito mais (I40a2b, b/207328687).Foi adicionada uma classe de tipo enumerado Drawables para receber recursos drawable dentro da biblioteca do Wear Compose. Assim, a reflexão não vai mais ser necessária. Isso corrige um bug em que os drawables de biblioteca eram removidos quando
minifyEnabled=true
oushrinkResources=true
(Ib2a98).Foram adicionados testes para
Stepper
no Wear Compose (I2d03a).Adição de amostras para
SwipeDismissableNavHost
na navegação do Wear Compose (I85f06).
Versão 1.0.0-alpha12
1º de dezembro de 2021
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha12
, androidx.wear.compose:compose-material:1.0.0-alpha12
e androidx.wear.compose:compose-navigation:1.0.0-alpha12
. A versão 1.0.0-alpha12 contém estas confirmações.
Novos recursos
Adicionamos o componente Stepper, que permite aos usuários fazer uma seleção com base em um intervalo de valores. O Stepper é um controle de tela cheia com botões de aumentar e diminuir na parte de cima e de baixo e um slot no meio para receber ícones ou texto. Os ícones do botão podem ser personalizados, se necessário (I625fe).
Adicionamos dois novos elementos combináveis para mostrar caixas de diálogo: AlertDialog aguarda uma resposta do usuário e mostra um título, um ícone, uma mensagem e a) dois botões para opções simples de confirmação/recusa ou b) ícones empilhados verticalmente ou botões de alternância para opções mais flexíveis. O componente ConfirmationDialog mostra uma confirmação com um tempo limite. Essa caixa de diálogo simples tem slots para um título e um ícone (animado) (Ic2cf8).
Mudanças na API
- Unidades (milissegundos) foram adicionadas aos valores sugeridos de duração da caixa de diálogo (I09b48).
Versão 1.0.0-alpha11
17 de novembro de 2021
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha11
, androidx.wear.compose:compose-material:1.0.0-alpha11
e androidx.wear.compose:compose-navigation:1.0.0-alpha11
. A versão 1.0.0-alpha11 contém estas confirmações.
Novos recursos
- Adicionamos um componente seletor que permite que o usuário selecione um item em uma lista de rolagem. Por padrão, a lista de itens selecionáveis é repetida "infinitamente" nas duas direções, para dar a impressão de um cilindro giratório visto da lateral. Dois recursos serão adicionados em versões futuras: o ajuste a um valor depois de deslizar e a adição de uma função ao PickerState para definir/rolar até o valor atual (I6461b).
Mudanças na API
- Foi adicionado um ScalingLazyItemScope e alguns novos modificadores fillParentMaxSize/fillParentMaxWidth/fillParentMaxHeight para permitir que os itens da lista sejam dimensionados com base no tamanho do contêiner pai. Os itens podem ser definidos para preencher total ou parcialmente o tamanho do arquivo pai. Isso expõe a funcionalidade já disponível na LazyRow/Column (I4612f).
- Adição de suporte à ScalingLazyColumn para permitir que os itens tenham uma chave. Também foram adicionados métodos de conveniência para permitir a adição de itens de matrizes e listas (Ic1f89).
Correções de bugs
- Mais exemplos de TimeText (I8cb64).
Versão 1.0.0-alpha10
3 de novembro de 2021
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha10
, androidx.wear.compose:compose-material:1.0.0-alpha10
e androidx.wear.compose:compose-navigation:1.0.0-alpha10
. A versão 1.0.0-alpha10 contém estas confirmações.
Novos recursos
Um InlineSlider foi adicionado para o Wear Compose. O InlineSlider permite que os usuários escolham um valor em um intervalo. O intervalo é mostrado como uma barra entre os valores mínimo e máximo, em que os usuários podem selecionar um único valor (If0148).
Confira o novo codelab do Compose para WearOS.
Mudanças na API
- A
minSdkVersion
da Macrobenchmark agora é23
(If2655).
Correções de bugs
- O processamento de transição em SwipeDismissableNavHost de SideEffect foi atualizado (I04994, b/202863359).
- O processamento de transição em SwipeDismissableNavHost foi atualizado (I1cbe0, b/202863359).
Versão 1.0.0-alpha09
27 de outubro de 2021
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha09
, androidx.wear.compose:compose-material:1.0.0-alpha09
e androidx.wear.compose:compose-navigation:1.0.0-alpha09
. A versão 1.0.0-alpha09 contém estas confirmações.
Novos recursos
- Lançamos a Prévia para desenvolvedores do Compose no Wear OS. Confira nossa postagem do blog (link em inglês), que fornece informações sobre os principais elementos combináveis e links para começar a usar outros recursos.
Mudanças na API
- Adicionamos suporte à personalização de todas as cores no tema de cores do Material Design para Wear (I4759b, b/199754668).
Correções de bugs
- Foram adicionados exemplos SwipeToDismissBox que mantêm o estado (Ibaffe).
- Foram adicionados links para os guias do KDocs em developer.android.com para CurvedText, TimeText e SwipeToDismissBox (I399d4).
- Agora, o SwipeDismissableNavHost é gerado quando não há um destino atual, o que indica que o NavGraph não foi criado usando a função utilitária wear.compose.navigation.composable (I91403).
- Foram adicionadas mais documentações e exemplos do uso da fonte de tempo em TimeText (I4f6f0).
Versão 1.0.0-alpha08
13 de outubro de 2021
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha08
, androidx.wear.compose:compose-material:1.0.0-alpha08
e androidx.wear.compose:compose-navigation:1.0.0-alpha08
. A versão 1.0.0-alpha08 contém estas confirmações.
Mudanças na API
- Renomeamos as propriedades
body
do AppCard e do TitleCard comocontent
e as movemos para o final da lista de propriedades para que elas sejam fornecidas como uma lambda final. Além disso,bodyColor
foi renomeado comocontentColor
para consistência com os novos nomes de slot (I57e78).
Correções de bugs
- Foram adicionados links para os guias do KDocs em developer.android.com para componentes de botão, cartão, ícone, tema, indicador de posição e escalonamento lento de colunas (I22428).
- Foi corrigido o SwipeToDismissBox do WearOS, que às vezes não processava ações de deslizar (I9387e).
- Foram acrescentados exemplos para Button, CompactButton, Chip, CompactChip, AppCard, TitleCard, ToggleButton, ToggleChip, SplitToggleChip (Iddc15).
- Novos testes de desempenho de microbenchmark para Card, Chip, ToggleChip, TimeText e ScalingLazyColumn (If2fe9).
Versão 1.0.0-alpha07
29 de setembro de 2021
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha07
, androidx.wear.compose:compose-material:1.0.0-alpha07
e androidx.wear.compose:compose-navigation:1.0.0-alpha07
. A versão 1.0.0-alpha07 contém estas confirmações.
Novos recursos
- Acréscimo de um componente CurvedText ao Material Design, que permite aos desenvolvedores escrever facilmente um texto curvado seguindo a curvatura de um círculo, geralmente na borda de uma tela circular (I19593).
Mudanças na API
- Adicionados testes para TimeText (Idfead).
- Transforme ArcPaddingValues em uma interface (Iecd4c).
- Adicionada animação ao SwipeToDismissBox (I9ad1b).
- Adicionado parâmetro hasBackground à API SwipeToDismissBox para que o gesto de deslizar possa ser desativado quando não houver conteúdo em segundo plano para exibir (I313d8).
- O método
rememberNavController()
agora usa um conjunto opcional de instânciasNavigator
que vão ser adicionadas aoNavController
retornado para oferecer melhor suporte a navegadores opcionais, como os do Material de navegação do Accompanist (link em inglês) (I4619e). - Referência do NamedNavArgument do navegação-common e remoção da cópia de wear.compose.navigation (I43af6).
Correções de bugs
- Correção da inconsistência do teste do CurvedRow em dispositivos menores (If7941).
- Corrigida possível oscilação na CurvedRow quando o conteúdo é atualizado, garantindo que a linha curva seja medida novamente (Ie4e06).
- ChipDefaults.gradientBackgroundChipColors() foi atualizado de acordo com as mudanças na especificação da UX. O gradiente agora começa com MaterialTheme.colors.primary com Alfa 32,5% e termina com MaterialTheme.colors.surface com Alfa @ 0% em um plano de fundo do MaterialTheme.colors.surface @ 75% Alfa (Id1548).
- Atualizamos as cores dos ToggleChips para que, quando estiverem no estado selecionado, correspondam à orientação mais recente de UX do Material Design para Wear. Os ToggleChips selecionados agora têm um plano de fundo gradiente de MaterialTheme.color.surface @ 0% Alfa, na parte superior esquerda, a MaterialTheme.color.primary @ 32% Alfa, na parte inferior direita, sobre um plano de fundo de MaterialTheme.color.surface @ 75% Alfa. Isso resulta em uma diferença mais sutil entre as caixas marcadas e desmarcadas para o ToggleChip (Idd40b).
Versão 1.0.0-alpha06
15 de setembro de 2021
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha06
, androidx.wear.compose:compose-material:1.0.0-alpha06
e androidx.wear.compose:compose-navigation:1.0.0-alpha06
. A versão 1.0.0-alpha06 contém estas confirmações.
Novos recursos
- Adicionamos o Scaffold, um elemento combinável para aplicativos de nível superior que oferece uma estrutura para processar a posição de PositionIndicators (como rolagem ou volume), uma área na parte de cima da tela para mostrar o horário e o status do aplicativo, além de também ter suporte a uma vinheta que desfoca a parte de cima e de baixo da tela para conteúdo rolável. A área principal do Scaffold é onde o conteúdo do aplicativo é colocado (I5e0bf).
- Adição da implementação TimeText para o Wear Compose (I5654c).
Biblioteca Wear Compose Navigation
Adicionamos a primeira versão da biblioteca Wear Compose Navigation, que oferece integração entre as bibliotecas Wear Compose e Androidx Navigation. Ela proporciona uma forma simples de navegar entre funções @Composable, como os destinos no seu aplicativo.
Esta versão inicial oferece:
- um elemento combinável
SwipeDismissableNavHost
, que hospeda um gráfico de navegação e tem navegação para trás com gestos de deslizar; - a extensão
NavGraphBuilder.composable
para ajudar na criação de gráficos de navegação; - o
rememberSwipeDismissableNavController()
para permitir a elevação de estado.
- um elemento combinável
Exemplo de uso em que criamos duas telas e navegamos entre elas:
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "start" ) { composable("start") { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier.fillMaxSize(), ) { Button(onClick = { navController.navigate("next") }) { Text("Go") } } } composable("next") { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier.fillMaxSize(), ) { Text("Swipe to go back") } } }
O Wear Compose Navigation é um pacote que inclui uma biblioteca separada para que os aplicativos WearCompose simples que implementam a própria navegação manual não precisem depender da biblioteca AndroidX Navigation.
Mudanças na API
- O componente
SwipeDismissableNavHost
foi atualizado para oferecer suporte arememberSaveable
, definindo a identidade-chave para o plano de fundo e o conteúdo (I746fd). - Adição de um adaptador PositionIndicator que possa lidar com LazyListState (I21b88).
- Atualizado o componente SwipeToDismissBox para oferecer suporte a rememberSaveable (Ie728b).
- Adicionamos suporte a reverseLayout para o componente ScalingLazyColumn. Isso permite a inversão da direção de rolagem e do layout (I9e2fc).
- A função
performGesture
e a classeGestureScope
foram descontinuadas e substituídas porperformTouchInput
eTouchInjectionScope
(Ia5f3f, b/190493367). - Renomeação de VignetteValue como VignettePosition e de VignetteValue.Both como VignettePosition.TopAndBottom (I57ad7).
- ScalingLazyColumnState foi renomeado como ScalingLazyListState, ScalingLazyColumnItemInfo foi renomeado como ScalingLazyListItemInfo, ScalingLazyColumnLayoutInfo foi renomeado como ScalingLazyListLayoutInfo e ScalingLazyColumnScope foi renomeado como ScalingLazyListScope para o caso de decidirmos adicionar uma implementação de ScalingLazyRow no futuro (I22734).
Correções de bugs
- Atualização da documentação do CompactChip para descrever o que acontece quando nenhum ícone ou etiqueta é fornecido (I4ba88).
- Fizemos alguns ajustes nos componentes do card do Wear (I6b3d0).
- O espaçamento de TitleCard entre o título e o corpo foi reduzido de 8 dp para 2 dp.
- A fonte do cabeçalho TitleCard mudou de body para title3.
- O gradiente do plano de fundo do card foi modificado para parecer mais escuro.
Versão 1.0.0-alpha05
1º de setembro de 2021
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha05
e androidx.wear.compose:compose-material:1.0.0-alpha05
. A versão 1.0.0-alpha05 contém estas confirmações.
Mudanças na API
- O elemento ArcPaddingValues foi marcado como @Stable (I57deb).
- A classe ScalingLazyColumnState agora implementa a interface ScrollableState, oferecendo aos desenvolvedores acesso programático para rolar o componente (I47dbc).
Correções de bugs
- Reduzimos o espaçamento entre o ícone e o texto nos elementos Chip e ToggleChip para deixá-los alinhados com as atualizações da especificação da UX (I83802).
Versão 1.0.0-alpha04
18 de agosto de 2021
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha04
e androidx.wear.compose:compose-material:1.0.0-alpha04
. A versão 1.0.0-alpha04 contém estas confirmações.
Novos recursos
- Adicionada uma API SwipeToDismissBox e um modificador deslizante que podem ser usados para oferecer suporte a um gesto de deslizar da esquerda para a direita a fim de dispensar um elemento. Embora sejam independentes dos componentes de navegação, esses elementos podem ser usados para sair de uma tela e navegar para a outra. Foram adicionados testes de integração à demonstração de deslizar para dispensar (I7bbaa).
- As interfaces ScalingLazyColumnItemInfo e ScalingLazyColumnLayoutInfo foram adicionadas à classe ScalingLazyColumnState para permitir que os desenvolvedores saibam as posições e os tamanhos reais dos itens em ScalingLazyColumn após a aplicação do escalonamento. Também corrigimos um bug na forma como o escalonamento era calculado ao aplicar o preenchimento de conteúdo da parte superior ao componente ScalingLazyColumn (I27c07).
Mudanças na API
- A classe CurvedTextStyle foi adicionada para especificar opções de estilo de texto curvado. Ela é semelhante a TextStyle, mas agora só oferece suporte aos elementos color, fontSize e background. Mais opções de estilo serão adicionadas no futuro (I96ac3).
- As interfaces ScalingLazyColumnItemInfo e ScalingLazyColumnLayoutInfo foram adicionadas à classe ScalingLazyColumnState para permitir que os desenvolvedores saibam as posições e os tamanhos reais dos itens em ScalingLazyColumn após a aplicação do escalonamento. Também corrigimos um bug na forma como o escalonamento era calculado ao aplicar o preenchimento de conteúdo da parte superior ao componente ScalingLazyColumn (I27c07).
- A anotação
@ExperimentalWearMaterialApi
foi adicionada à enumeraçãoSwipeDismissTarget
, parte da APISwipeToDismissBox
(I48b5e).
Correções de bugs
- Adicionado material de teste para a API SwipeToDismissBox (I9febc).
Versão 1.0.0-alpha03
4 de agosto de 2021
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha03
e androidx.wear.compose:compose-material:1.0.0-alpha03
. A versão 1.0.0-alpha03 contém estas confirmações.
Mudanças na API
- Foi adicionado o componente CurvedText, que permite que os desenvolvedores escrevam texto seguindo a curvatura de um círculo, geralmente na borda de uma tela circular (Id1267).
- Renomeamos
CardDefaults.imageBackgroundPainter()
comoCardDefaults.imageWithScrimBackgroundPainter()
para deixar claro que a imagem de plano de fundo tem um scrim desenhado sobre ela (I53206). - Foi adicionado o componente ScalingLazyColumn. Com ele, é acrescentado um componente de lista para o Wear Material que oferece uma visualização olho de peixe, com o conteúdo da lista diminuindo de tamanho e ficando transparente à medida que a imagem é escalonada em direção à borda do componente (I7070c).
Correções de bugs
- Mudamos a cor padrão do conteúdo do appName no AppCard em resposta a uma atualização das especificações de UX. A cor padrão do appName agora é
MaterialTheme.colors.onSurfaceVariant
. Além disso, adicionamos uma descrição do documento de parâmetro para o espaço do título (Ic4ad1).
Versão 1.0.0-alpha02
21 de julho de 2021
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha02
e androidx.wear.compose:compose-material:1.0.0-alpha02
. A versão 1.0.0-alpha02 contém estas confirmações.
Novos recursos
- Uma nova classe, CurvedRow, foi adicionada para dispor elementos combináveis em um arco (I29941).
- Um novo tipo de card, TitleCard, foi acrescentado para uso em apps, além de oferecer suporte para imagens, como o plano de fundo em cards para enfatizar o conteúdo deles (I53b0f).
Mudanças na API
- Adicionado suporte de CurvedRow com o alinhamento radial, semelhante ao alinhamento vertical em uma linha (Id9de5).
- Adicionada uma nova classe, CurvedRow, para dispor elementos de composição em um arco (I29941).
- Um novo tipo de card, TitleCard, foi acrescentado para uso em apps, além de oferecer suporte para imagens, como o plano de fundo em cards para enfatizar o conteúdo deles (I53b0f).
- Adicionados ícones de alternância (caixa de seleção, chave e botões de opção) a ToggleChipDefaults para facilitar a configuração de ToggleChip e SplitToggleChips para os desenvolvedores (I7b639).
- O padding do conteúdo inicial e final do Chips foi atualizado, para ficar sempre em 14 dp, independente do Chip ter um ícone ou não. Anteriormente, eram 12.dp, se o ícone estivesse presente, e 14.dp, se não estivesse (I34c86).
Correções de bugs
- Foram adicionados testes à CurvedRow (I93cdb).
- As dependências do Wear Compose foram vinculadas ao Compose 1.0.0-rc01 (Ie6bc9).
- O processamento da pintura de imagens de plano de fundo em Cards e Chips mudou para que a imagem fosse cortada, em vez de esticada, para manter as proporções de imagem (I29b41).
- Mais demonstrações e testes de integração foram acrescentados ao Button e ao SwitchButton (5e27ed2).
- Mais testes de Chip foram adicionados para cobrir as cores de conteúdo para imageBackgroundChips (Ia9183).
Versão 1.0.0-alpha01
1º de julho de 2021
Lançamento de androidx.wear.compose:compose-foundation:1.0.0-alpha01
e androidx.wear.compose:compose-material:1.0.0-alpha01
. A versão 1.0.0-alpha01 contém estas confirmações.
Novos recursos
O Wear Compose é uma biblioteca baseada em Kotlin, compatível com Compose e com Wear Material Design, uma extensão do Material Design para wearables WearOS. Esta primeira versão alfa contém implementações práticas e funcionais do seguinte:
- Tema do Material Design: configura as cores, tipografia e formas de forma consistente nos componentes usados nessa biblioteca.
- Chip, CompactChip: os chips têm forma de estádio e as variantes estão disponíveis para o conteúdo de ícones, rótulos e rótulos secundários.
- - ToggleChip, SplitToggleChip: um tipo especializado de chip que inclui um slot para um ícone de alternância de dois estados, como um botão de opção ou caixa de seleção. Além disso, o SplitToggleChip tem duas áreas tocáveis, uma clicável e uma alternável.
- Botão, CompactButton: os botões são circulares em forma, com um único slot de conteúdo para um ícone ou texto mínimo (máximo de três caracteres).
- ToggleButton: um botão que ativa ou desativa uma ação, com um único slot para ícone ou mínimo de texto (máximo de três caracteres).
- Card, AppCard: em forma retangular com cantos arredondados, oferecendo espaços para conteúdo como ícone, horário, título e corpo do app.
As versões futuras vão ampliar o conjunto de widgets para adicionar suporte a seletores, controles deslizantes, listas, indicadores de páginas, caixas de diálogo, indicadores de rolagem, avisos e outros componentes do Material Design.
Além disso, vai ser oferecido o suporte a outros recursos específicos de wearable, como layouts e textos curvos, além de scaffolding, para facilitar a criação de apps/sobreposições de desenvolvedores.
O Wear Compose Material foi projetado com os mesmos princípios do Compose Material, embora seja direcionado para wearables. A biblioteca Wear Compose Material deve ser usada no lugar da biblioteca Compose Material para criar um dispositivo wearable.
As duas bibliotecas "Material" precisam ser consideradas mutuamente exclusivas e não podem ser misturadas no mesmo app. Se os desenvolvedores incluem a biblioteca Compose Material nas dependências, isso sugere a) que há componentes ausentes na biblioteca Compose Material (nesse caso, fale para a gente sobre o que você precisa) ou b) o uso de um componente não recomendado para um dispositivo wearable.