Wear Compose
Atualização mais recente | Versão estável | Candidata a lançamento | Versão Beta | Versão Alfa |
---|---|---|---|---|
22 de junho de 2022 | - | 1.0.0-rc02 | - | - |
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 no arquivo build.gradle
para
seu app ou módulo:
Groovy
dependencies { implementation "androidx.wear.compose:compose-foundation:1.0.0-rc02" // For Wear Material Design UX guidelines and specifications implementation "androidx.wear.compose:compose-material:1.0.0-rc02" // For integration between Wear Compose and Androidx Navigation libraries implementation "androidx.wear.compose:compose-navigation:1.0.0-rc02" // 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.0.0-rc02") // For Wear Material Design UX guidelines and specifications implementation("androidx.wear.compose:compose-material:1.0.0-rc02") // For integration between Wear Compose and Androidx Navigation libraries implementation("androidx.wear.compose:compose-navigation:1.0.0-rc02") // 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 ver mais informações sobre dependências, consulte Adicionar dependências de build.
Feedback
Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.
Consulte a documentação do Issue Tracker para saber mais.
Versão 1.0
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 "canto superior esquerdo para canto inferior direito" e ficou "canto superior direito para canto inferior esquerdo" (Ic2e77).
- Atualizamos os gradientes padrão de
Chip/ToggleChip/Card
para alinhá-los 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 deChip/ToggleChips
que tem planos de fundo gradientes para garantir 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 de lista zero 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, como 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 chip com um estado marcado/desmarcado e um slot
ToggleControl
adicionado para mostrar um ícone, como um interruptor ou um botão de opção para mostrar 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
, para 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 em 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 de composição de layout que posiciona os filhos em um arco, girando eles 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 DSL (linguagem específica do domínio, 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 usado, já que usa temas do Material.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 de composição 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
- Adição de novos modificadores em curva para especificar o segundo plano de um elemento em curva:
CurvedModifier.background
,.radialGradientBackground
e.angularGradientBackground
(I8f392). - Permita 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
- Reordene os 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 permitirá que os desenvolvedores usem outros modificadores em alguns conteúdos de slot e evitem 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 padronizados 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 alinhar 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 ao
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 exibida/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 a i18n e a11y, mudamos
ToggleChip
eSplitToggleChip
para que eles 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 alterados para começar com letra minúscula),SwitchIcon()->switchIcon()
,CheckboxIcon->checkboxIcon()
eRadioIcon()->radioIcon()
. Isso permite e incentiva os desenvolvedores a criar os própriosIcon()
que podem ser compostos com um conjuntocontentDescription
adequado (I5bb5b). - Adicionamos um parâmetro
SwipeDismissableNavHostState
aSwipeDismissableNavHost
. Isso é compatível com o deslize de borda em telas usadas como destinos de navegação, porque oSwipeToDismissBoxState
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
- O modificador
edgeSwipeToDismiss
paraSwipeToDismiss
foi adicionado. 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 uma 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). - Os ícones padrão dos parâmetros
InlineSlider
e Stepper foram removidos. 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). - As anotações
ExperimentalWearMaterialApi
foram removidas 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, como adicionar suporte a RSB.PickerState
agora implementa a interfaceScrollableState
(Ib89c7).
Correções de bugs
- Atualização das 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 para melhorar o desempenho dele. Isso não vai ter efeito nos 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
, 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 para ser 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 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 daExperimentalWearMaterialApi
aosModifier.swipeable
e aoSwipeableState
, 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
- Código simplificado e fixo 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). - Correção de 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 do 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 o
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 exibe 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 ao 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 tem oreverseLayout
,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 a
ScalingLazyColumn
para que não preencha mais todo o espaço no pai. Em vez disso, ela 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) será colocado no centro da janela de visualização na inicialização e o primeiro (índice = 0) 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 a
extraPadding
padrãoScalingLazyColumn
fornecida para garantir que haja muitos itens de lista a serem desenhados (mesmo quando estivermos reduzindo o tamanho de alguns deles) de 10% para 5%. Isso evita escrever itens adicionais na lista que podem não aparecer na janela de visualização. Se scalingParams não padrão estiverem sendo usados (escalonamento mais extremo, por exemplo), o desenvolvedor poderá ajustar o padding extra usandoviewportVerticalOffsetResolver
(I76be4). - Correção de um problema com TimeText em várias linhas no dispositivo quadrado (Ibd3fb).
- Modificamos a
ScalingLazyColumn
para que não preencha mais todo o espaço no pai. Em vez disso, ela 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 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 que pode ser composto acione uma caixa de diálogo em tela cheia sobre outro conteúdo. Quando a caixa é mostrada, é possível deslizar para dispensar e exibir 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
). OAlert
, oConfirmation
e oDialog
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 ao
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
Correção de um problema em que
SwipeDismissableNavHost
adicionava um destino à hierarquia do Compose antes de alcançar o estado de ciclo de vidaCREATED
, 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).Adição de uma classe de enumeração Drawables para receber recursos drawable dentro da biblioteca do Wear Compose, para que a reflexão não seja mais necessária. Isso corrige um bug em que os drawables de biblioteca eram removidos quando
minifyEnabled=true
oushrinkResources=true
(Ib2a98).Adição de 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 que podem ser compostos para exibição de caixas de diálogo: AlertDialog aguarda uma resposta do usuário e exibe um título, um ícone, uma mensagem ou a) dois botões para opções simples de afirmativa/negativa ou b) ícones empilhados verticalmente ou botões de alternância para opções mais flexíveis. ConfirmationDialog exibe 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
- Adição de 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 Macrobenchmark agora tem uma
minSdkVersion
de23
(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. Veja nossa postagem do blog (em inglês), que fornece informações sobre os principais elementos que podem ser compostos 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 um 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).
- Correção do SwipeToDismissBox do WearOS que às vezes não processa 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
- Adição de testes para TimeText (Idfead).
- Transforme ArcPaddingValues em uma interface (Iecd4c).
- Adição de animação ao SwipeToDismissBox (I9ad1b).
- Adição do 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).
- Correção de possível oscilação na CurvedRow quando o conteúdo é atualizado e garante 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 componente para aplicativos de nível superior que pode ser composto e oferece uma estrutura para lidar com a posição de PositionIndicators (como rolagem ou volume), uma área na parte superior da tela para mostrar o horário e o status do aplicativo, além de também ter suporte para uma vinheta que desfoca a parte superior e inferior 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
SwipeDismissableNavHost
que pode ser composto, 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
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
- Atualização de
SwipeDismissableNavHost
para oferecer compatibilidade comrememberSaveable
, 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).
- Atualização de 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).
- Renomeação de ScalingLazyColumnState como ScalingLazyListState, de ScalingLazyColumnItemInfo como ScalingLazyListItemInfo, de ScalingLazyColumnLayoutInfo como ScalingLazyListLayoutInfo e de ScalingLazyColumnScope 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 se nenhum ícone ou etiqueta for 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
- Adição de uma API SwipeToDismissBox e de 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 curvas. 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
- Adição de 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
- Adição do 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). - Adição do 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 que possam ser compostos 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
- A CurvedRow passou a ter compatibilidade com o alinhamento radial, semelhante ao alinhamento vertical em uma linha (Id9de5).
- Uma nova classe, CurvedRow, foi adicionada para dispor elementos que possam ser compostos 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).
- Foram adicionados ícones de alternância (caixa de seleção, interruptor e botões de opção) ao 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, independentemente de o 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 no Cards e no 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 local de conteúdo para um ícone ou texto mínimo (máximo de três (3) 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 (3) 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 ampliarão a compatibilidade do conjunto de widgets para que eles sejam adicionados aos seletores, controles deslizantes, listas, indicadores de páginas, caixas de diálogo, indicadores de rolagem, avisos e muito mais.
Além disso, a compatibilidade será fornecida para outros recursos específicos de wearable, como layouts e textos curvos, além de andaimes, 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 informe-nos o que você precisa, ou b) o uso de um componente não recomendado para um dispositivo wearable.