Participe do evento ⁠#Android11: apresentação de lançamento da versão Beta no dia 3 de junho.

IU do Compose

Atualização mais recente Versão atual
29 de Abril de 2020 0.1.0-dev10

Declarar dependências

Para adicionar uma dependência à IU do Compose, 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:

dependencies {
    def ui_version = "0.1.0-dev10"

    implementation 'androidx.ui:ui-tooling:$ui_version'
    implementation 'androidx.ui:ui-layout:$ui_version'
    implementation 'androidx.ui:ui-material:$ui_version'
}

Para ver mais informações sobre dependências, consulte Adicionar dependências de compilação.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas existentes (link em inglês) nesta biblioteca antes de criar um novo. Adicione seu voto a um problema existente clicando no botão de estrela.

Criar novo problema (link em inglês)

Consulte a documentação do Issue Tracker para mais informações.

Versão 0.1.0-dev

Versão 0.1.0-dev10

29 de Abril de 2020

androidx.ui:ui-*:0.1.0-dev10 é lançado. A versão 01.0-dev10 contém essas confirmações.

Mudanças na API

  • Todos os usos anuláveis de Color na API foram substituídos por não anuláveis e usam Color.Unset em vez de null (Iabaa7)
  • As funções de medições intrínsecas em Layout e LayoutModifier2 agora têm um receptor IntrinsicMeasureScope que fornece API de consulta intrínseca com direção de layout propagada implicitamente. (Id9945)
  • Os filhos Layout e LayoutModifier podem ser medidos com uma direção de layout diferente. (Ibd731)
  • O novo Modifier.zIndex() foi adicionado para controlar a ordem de desenho dos filhos no mesmo layout pai. propriedade de elevação em DrawLayerModifier foi renomeada para shadowElevation e não controla mais a ordem de desenho. A ordem dos parâmetros de DrawShadow foi modificada: o primeiro parâmetro agora é o elevation e o segundo parâmetro agora é o shape, com um padrão RectangleShape (I20150, b/152417501).
  • onSizeChange e onPositionChange removidos em Owner (I5c718).
  • Adição de Constraints2, uma cópia de Constraints que só aceita valores de restrições Int em vez de IntPx. IntPx será removido e todas as restrições inteiras serão consideradas pixels como o Android.
    • Adição de IntSize também, que acabará substituindo IntPxSize (I4b43a).
  • Adição de InteractionState e Interaction, facilitando a criação de componentes que reagem a mudanças de estado da IU, como pressionar e arrastar (Icfe25, b/152525426).
  • RectangleShape foi movido de androidx.ui.foundation.shape.* para androidx.ui.graphics.* (Ia74d5, b/154507984).
  • Atualização da API TextField: os callbacks onFocus e onBlur foram mesclados em um único callback onFocusChange(Boolean) com um parâmetro booleano (I66cd3)
  • O FontLoader foi removido. Use fontResource (Id0308).
  • Remoção da API MaskFilter não utilizada porque tem uso limitado e não é otimizada para aceleração de hardware na maioria dos casos de uso (I54f76).
  • Adição de "Não definido" Color para representar um valor não definido sem a opção "Cores" (If901a).
  • Adição de métodos de extensão Canvas.rotate e Canvas.scale para consumir coordenadas dinâmicas opcionais para transformações. Esse é o padrão no canto superior esquerdo da atual tela de tradução.
    • Canvas.rotateRad também foi movido para ser um método de extensão de consistência (Ibaca6)
  • A cor padrão da FAB e da FAB estendida foi modificada para MaterialTheme.colors.secondary (I3b9b9, b/154118816, em inglês).
  • Não é mais necessário chamar onIdle() explicitamente após ComposeTestRule.setContent {} (Iafb2e, b/154079800, em inglês).
  • Agora você pode passar um ActivityTestRule personalizado para AndroidComposeTestRule (I38206, b/153623653, em inglês).
  • Adição de getLineStart, getLineEnd, getEllipsisOffset e getEllipsisCount a TextLayoutResult (Ibc801)
  • FontWeight.lerp não se ajusta mais. Ainda é uma classe de dados (I521c2).
  • O construtor FontWeight agora é público, não é mais uma classe de dados (Id6b1f).

Correções de bugs

  • Apresente o parâmetro opcional rect adicional a ImagePainter para permitir o desenho de uma subseção de ImageAsset subjacente (I0ea9e)
  • Correção de uma falha em AdapterList ao remover itens. (Ic64b0, b/153195921, em inglês)
  • Agora é necessário usar ComposeTestRule para que qualquer Finder (como o findByTag) funcione (I75bb9, b/153565271, em inglês)

Versão 0.1.0-dev09

15 de abril de 2020

Lançamento do androidx.ui:ui-*:0.1.0-dev09. A versão 0.1.0-dev9 contém essas confirmações (link em inglês).

Mudanças na API

  • Alignment se tornou instantânea com valores arbitrários. Adição de Alignments 1D. (Ia0c05, link em inglês)
  • alignToSiblings now accepts a agora aceita um Measured em vez de um instead of Placeable. (I5788d, link em inglês)
  • (I45f09, b/152842521, em inglês)
    • ScaleFit renomeado como ContentScale
    • ContentScale foi movido do ui-graphics para o ui-core para ficar no mesmo módulo que a API Alignment.
    • FillMaxDimension renomeado como Crop
    • FillMinDimension renomeado como Fit
    • Fit renomeado como Inside para melhor correspondência de ImageView.ScaleType equivalentes
    • Adição da documentação que indica que a combinação de Crop e Alignment.Center alcança o mesmo resultado que ImageView.ScaleType.CENTER_CROP, e Fit usado com Alignment.Center alcança o mesmo resultado que ImageView.ScaleType.FIT_CENTER
    • Inside usado com Alignment.Center alcança o mesmo resultado que ImageView.ScaleType.CENTER_INSIDE
  • Adição da compatibilidade com Rtl para modificadores de desenho. (I0aaf9, link em inglês)
  • Lançamento da API para aumentar o Android Views a partir do XML. Consulte a demonstração do ViewInCompose para ver mais detalhes. (I42916, link em inglês)
  • Adição de positionInParent e boundsInParent a LayoutCoordinates. (Icacdd, b/152735784, links em inglês)
  • DrawLayerModifier e drawLayer() agora padronizam clipToBounds e clipToOutline como false. (I0eb8b, b/152810850, link em inglês)
  • LayoutResult foi renomeado como MeasureResult. (Id8c68, link em inglês)
  • Adição de LayoutModifier2, uma nova API para definir modificadores de layout. LayoutModifier obsoleto (If32ac, link em inglês)
  • Remoção de ProvideContentColor. Basta usar ContentColorAmbient diretamente com Providers (Iee942, link em inglês)
  • Adição de um parâmetro de cor ao texto, permitindo modificar a cor do estilo do texto sem precisar unificá-lo manualmente ao estilo fornecido em um tema. (I7112a, link em inglês)
  • O sistema de temas de forma é atualizado de acordo com a especificação do Material Design. Agora você pode oferecer formas pequenas, médias e grandes para serem usadas pela maior parte dos componentes (Ifb4d1, link em inglês)
  • LayoutDirectionAmbient está obsoleto. Para ler a direção do layout definida pela localidade, use localeLayoutDirection no ConfigurationAmbient (I851b1, link em inglês)
  • O novo LifecycleOwnerAmbient está disponível. Agora uma Activity usada com a IU do Compose precisa ampliar androidx.activity.ComponentActivity (ou AppCompatActivity). O setContent na android.app.Activity está obsoleto (Idb25a, b/153141084, links em inglês)
  • Compatibilidade com pop-up RTL (IB6657, link em inglês)
  • Adição de ClipboardManager. (I1dd2b, link em inglês)
  • Adição da compatibilidade com a personalização de dimensões de filhos do ConstraintLayout (Idb1a5, link em inglês)
  • O OnChildPositioned foi removido. Em vez dele, os desenvolvedores precisam usar o modificador Modifier.onChildPositioned. (I5ade7, b/151141173, b/151641453, b/151818355, links em inglês)
  • toFrameworkRect/toFrameworkRectF foi renomeado como toAndroidRect/toAndroidRectF para corresponder à convenção de nomenclatura das conversões de objeto entre o Compose e as APIs do framework do Android sobre os quais elas são realizadas. Os documentos dessas APIs também foram atualizados (I86337, link em inglês)
  • EdgeInsets foi renomeado como InnerPadding. O parâmetro innerPadding de botões do Material Design foi renomeado como paddding. (I66165, link em inglês)
  • Adição de modificadores para o dimensionamento de medidas intrínsecas e suspensão do uso dos componentes que realizavam essa tarefa. (I8295d, link em inglês)
  • Remoção dos compostos Wrap e Center obsoletos. (I29e23, link em inglês)
  • O controle deslizante agora não tem estado. Os usuários precisarão transmitir e atualizar o estado por conta própria, assim como em qualquer outro controle. (Ia00aa, link em inglês)
  • StaticDrawer foi removido. Se precisar desse componente, use Box com uma largura especificada (I244a7, link em inglês)
  • Adição do parâmetro de modificador ao ListItem e reordenação dos parâmetros para promover o corpo do lambda final (I66e21)
  • Adição do parâmetro de construtor defaultFontFamily a Typography, permitindo especificar a família de fontes padrão que será usada para qualquer TextStyles para o qual uma família não tenha sido definida. (I89d07, link em inglês)
  • Material Data Tables temporariamente removido da plataforma da API. (Iaea61, link em inglês)
  • Os parâmetros no composto Divider foram renomeados (Ic4373, link em inglês)
  • O parâmetro à direita de "children" foi renomeado em muitos componentes do Material Design. Se você o usava por meio de parâmetros nomeados, use o novo nome ou use apenas a sintaxe de lambda final (Ia6d19, link em inglês)
  • MaterialTheme.emphasisLevels foi removido. Use EmphasisAmbient.current para recuperar os níveis de ênfase (Ib5e40, link em inglês)
  • savedInstanceState() agora pode ser usado com tipos anuláveis (I6847f, b/153532190, links em inglês)
  • Adição de ui-rxjava2: novo artefato com adaptadores para RxJava2. (Ifab4b, b/153369097, links em inglês)

    • Exemplo do uso:
    val value by observable.subscribeAsState()
    
  • Adição de ui-livedata: novo artefato com um adaptador para LiveData. (Ie9e8c, b/150465596, links em inglês)

    • Exemplo do uso:
    val value by liveData.observeAsState()
    

Correções de bugs

  • Adição dos parâmetros verticalGravity e horizontalGravity a Row e Column, respectivamente. (I7dc5a, link em inglês)
  • ui-text module was renamed asui-text-core` (I57dec, link em inglês)
  • Aprimoramento da API DrawModifier (Ibaced, b/152919067, em inglês):
    • Definição do escopo do receptor de draw() como ContentDrawScope
    • Remoção de todos os parâmetros em draw()
    • DrawScope tem a mesma interface do antigo CanvasScope
    • ContentDrawScope tem o método drawContent()
  • runOnIdleCompose e runOnUiThread agora são funções globais, e não métodos em ComposeTestRule. (Icbe8f, link em inglês)
  • [Mutável] Operadores para delegação de propriedade de estado foram movidos para extensões compatíveis com otimizações de delegação de propriedade do Kotlin 1.4. Os autores da chamada precisam adicionar importações para continuar usando by state { ... } ou by mutableStateOf(...). (I22c16, link em inglês)
  • ColoredRect está obsoleto. Use Box(Modifier.preferredSize(width, height).drawBackground(color)). (I499fa, b/152753731, link em inglês)
  • Mudamos a forma como medimos o primeiro layout colocado no bloco activity.setContent { }. Antes, ele era forçado a preencher toda a tela da atividade. Agora, ele se comporta como se você colocasse o layout dentro de uma pilha: ele pode ser menor que uma tela e será posicionado no canto superior esquerdo. Caso prefira o comportamento antigo, é possível aplicar Modifier.fillMaxSize() para seu layout. (Ie88a7, b/15453714, links em inglês)
  • O módulo ui-text-compose foi renomeado como ui-text. ui-text agora contém os compostos CoreText e CoreTextField (IB7d47, link em inglês)
  • Os compostos ui-framework/CoreText, CoreTextField foram movidos para ui-text-compose. É recomendável incluir ui-text-compose no seu projeto. (I32042, link em inglês)
  • wrapContentWidth e wrapContentHeight foram atualizados para esperar um Alignment vertical ou horizontal em vez de qualquer Alignment. O modificador de gravidade foi atualizado para aceitar Alignment vertical ou horizontal. Row, Column e Stack foram atualizadas para ter compatibilidade com Alignments contínuos personalizados. (I7731b, link em inglês)
  • Criação da API PixelMap para oferecer compatibilidade com consultas de informações de pixel de um ImageAsset. (Ia4d93, link em inglês)
  • Adição da implementação do Material Design do campo de texto preenchido (Ic75cd, link em inglês)
  • O nome de pacote ui-android-text (androidx.text) foi substituído por androidx.ui.text.platform para estar alinhado à política androidx. (I42711, link em inglês)

Versão 0.1.0-dev08

1º de abril de 2020

Lançamento do androidx.ui:ui-*:0.1.0-dev08. A versão 0.1.0-dev08 contém essas confirmações (link em inglês).

Mudanças na API

  • Adição de propriedades translationX/Y para oferecer compatibilidade com o ajuste da lista de exibição para comandos de desenho de uma determinada camada. Isso é útil para mover conteúdos em resposta a animações ou eventos de toque. (I22c16, link em inglês)
  • Adição de parâmetros pivotX, pivotY às APIs Layer para oferecer compatibilidade com a rotação e o dimensionamento em torno de um determinado ponto em uma camada (Icf7c3, link em inglês)
  • O arrastável foi movido para o modificador (Id9b16, b/151959544, links em inglês)
  • Text foi movido de androidx.ui.core para o pacote androidx.ui.foundation. (I87ce5, link em inglês)
  • Adição do parâmetro enabled a Checkbox, Switch and Toggleable (I41c16, link em inglês)
  • O Ripple agora é um modificador. Embora Clickable ainda não tenha sido convertido, o uso recomendado é Clickable(onClick = { ... }, modifier = ripple()) (Ie5200, b/151331852, b/1.50060763, links em inglês)
  • Adição da API VectorPainter para substituir a API de subcomposição já existente para gráficos vetoriais. O resultado da subcomposição é um objeto VectorPainter em vez de um DrawModifier.
    • Os compostos DrawVector estão obsoletos. Use VectorPainter.
    • A API Image(Painter) foi renomeada como PaintBox(Painter)
    • Criação do composto Vector que se comporta como Image, mas com um VectorAsset em vez de um ImageAsset (I9af9a, b/149030271, links em inglês)
  • O composto ParentData está obsoleto. Caso você precise apenas marcar os filhos do layout para reconhecê-los dentro do bloco de medida, crie um modificador que implemente a interface ParentDataModifier ou use o modificador LayoutTag. (I51368, b/150953183, links em inglês)
  • OnPositioned foi removido para dar preferência ao uso do modificador onPositioned (I2ea3c, link em inglês)
  • Os membros RowScope e ColumnScope agora podem ser acessados fora de Row e Column. (I7112a, link em inglês)
  • Container está obsoleto. Use Box. (I675ce, b/15407926, links em inglês)
  • As APIs FloatingActionButton foram refatoradas para aceitar lambdas compostos em vez de primitivos. Veja amostras atualizadas para informações de uso. (I00622, link em inglês)
  • Novas funções: savedInstanceState() e rememberSavedInstanceState(). Elas são semelhantes a state() e remember(), mas têm a compatibilidade integrada com estados de instância (If1987, b/152025209, links em inglês)

Correções de bugs

  • Substituição de modificador mais operador por funções de extensão de fábrica (I225e4, link em inglês)
  • O composto Center está obsoleto. Ele precisa ser substituído pelo modificador LayoutSize.Fill + LayoutAlign.Center ou por um dos compostos Box ou Stack com modificadores adequados aplicados (Idf5e0, link em inglês)
  • Mudança das APIs MaterialTheme, como MaterialTheme.colors(), MaterialTheme.typography(), passando de funções a propriedades. Remoção dos parênteses das chamadas existentes. Nenhuma mudança de comportamento é esperada. (I7112a, link em inglês)

Versão 0.1.0-dev07

18 de março de 2020

Lançamento do androidx.ui:ui-*:0.1.0-dev07. A versão 0.1.0-dev07 contém essas confirmações (link em inglês).

Mudanças na API

  • Adições de API ao ManualAnimationClock: hasObservers: Boolean e dispatchOnSubscribe: Boolean de parâmetro construtor (Iaa134, link em inglês)
  • Adição de OnPositionedModifier e OnChildPositionedModifier para substituir as funções compostas OnPositioned e OnChildPositioned. (I2ec8f, link em inglês)
  • Adição de LayerModifier, um modificador que permite adicionar um RenderNode para um Layout. Ele permite definir o recorte, a opacidade, a rotação, o dimensionamento e as sombras. Isso substituirá RepaintBoundary. (I7100d, b/150774014, links em inglês)
  • A direção do layout passou a ser propagada do nó de layout pai para os filhos. Adição de modificador de direção de layout. (I3d955, link em inglês)
  • Criação do composto Image para processar dimensionamento/layout, além de desenhar um determinado ImageAsset na tela. Esse composto também pode ser usado para desenhar qualquer instância arbitrária do Painter que respeite o tamanho intrínseco dele e ofereça compatibilidade com um determinado tamanho fixo ou mínimo (IBcc8f, link em inglês)
  • Image foi renomeado como ImageAsset para diferenciar melhor os dados do Image e o futuro composto Image , usado para participar do layout e desenhar conteúdo. (Id5bbd, link em inglês)
  • Criação do método de extensão em android.graphics.Bitmap, Bitmap.asImageAsset() para criar uma instância de um ImageAsset útil para combinar o desenvolvimento de aplicativos para Android tradicionais com o framework do Compose. (Id5bbd, link em inglês)
  • androidx.compose.ViewComposer foi movido para androidx.ui.node.UiComposer, e androidx.compose.Compose.subcomposeInto foi movido para androidx.ui.core.subcomposeInto (Idef00, link em inglês)
  • Remoção da função Layout Composable que aceita varargs de filhos. (Iff757, link em inglês)
  • WithConstraints recebeu o parâmetro LayoutDirection (I6d6f7, link em inglês)
  • Adição do modificador LayoutOffset para ajustar a posição do layout (I0b8a3, link em inglês)
  • Surface e Card foram movidos de androidx.ui.material.surface para androidx.ui.material (I88a6d, b/150863888, links em inglês)

Correções de bugs

  • O LayoutFlexible foi renomeado como LayoutWight. O parâmetro restrito foi renomeado como preenchimento. (I5977f, link em inglês)
  • A função do composto Opacity foi substituída pelo modificador drawOpacity. (I5fb62, link em inglês)
  • Agora, os testes que usam AndroidComposeTestRule oferecem um relógio de animação na raiz da composição que permite que ele seja pausado, retomado e avançado manualmente. (Id54c5, link em inglês)
  • Remoção do RepaintBoundary em favor do DrawLayerModifier (I00aa4, link em inglês)
  • Agora, Button, FloatingActionButton e Clickable têm um parâmetro enabled separado. Alguns dos parâmetros no Button foram renomeados ou reordenados. (I54b5a, link em inglês)
  • O DrawVector passou de uma função composta comum para retornar um modificador drawVector() que desenhará o vetor como o plano de fundo de um layout. (I7b8e0, link em inglês)
  • Substituição do Clip de função composta pelo modificador drawClip(). DrawClipToBounds é um modificador conveniente a ser usado quando você só precisa cortar os limites da camada com uma forma retangular. (If28eb, link em inglês)
  • Substituição da função composta DrawShadow pelo modificador drawShadow(). As sombras agora são desenhadas como parte do LayerModifier. (I7112a, link em inglês)
  • O composto Wrap está obsoleto. Ele pode ser substituído pelo modificador LayoutAlign ou pelo composto Stack (IB237f, link em inglês).
  • Painter.toModifier foi renomeado como Painter.asModifier, já que o modificador recém-criado tem uma referência ao Painter original que pode ser compartilhada entre várias instâncias do modificador (I7195b, link em inglês).
  • O padding negativo no LayoutPadding não é mais permitido. Em vez disso, use o LayoutOffset para ajustes de posições negativas. (Ifb5b1, link em inglês)

Versão 0.1.0-dev06

4 de março de 2020

Lançamento do androidx.ui:ui-*:0.1.0-dev06. A versão 0.1.0-dev06 contém essas confirmações.

Mudanças na API

  • O componente Stack é compatível com a direcionalidade da direita para a esquerda (Ic9e00, link em inglês).
  • Compatibilidade inicial com o layout RTL no Compose (Ia5519, link em inglês)
  • Adição de Icon, IconButton and IconToggleButton e remoção de AppBarIcon. Você pode substituir diretamente os usos existentes do AppBarIcon pelo iconButton. Agora, eles terão a área de toque correta. Consulte as amostras para ver informações de uso. Veja também os ícones do material fornecidos que podem ser usados diretamente com esses componentes. (I96849, link em inglês)
  • Remoção da API Snackbar com parâmetros String a favor do uso da sobrecarga que aceita lambdas compostos. Consulte amostras atualizadas para ver informações de uso (I55f80)
  • As APIs Tab foram refatoradas para aceitar lambdas text e icon (Ia057e, link em inglês)
  • Adição do componente BottomNavigation. Consulte os documentos e as amostras para ver informações de uso (I731a0)
  • Adição da compatibilidade com a função de chamar ações semânticas personalizadas. (I22c16, link em inglês)

Correções de bugs

  • Compatibilidade com a direção da direita para a esquerda no modificador LayoutPadding (I9e8da, link em inglês)

Versão 0.1.0-dev05

19 de fevereiro de 2020

Lançamento do androidx.ui:ui-*:0.1.0-dev05. A versão 01.0-dev05 contém essas confirmações (link em inglês).

Mudanças na API

  • Adição da API Painter. Crição da API para desenhos abstratos de conteúdo em uma região específica. O comportamento dessa API é semelhante ao das APIs Drawable. Contudo, ela fornece uma plataforma de API mais simplificada. Além disso, há implementações genéricas para aplicar vários efeitos, como Alfa, e aplicar ColorFilters para implementações de desenho arbitrárias, com a possibilidade das próprias implementações oferecerem uma compatibilidade mais otimizada para essas instalações. (aosp/1214802, link em inglês)
  • Alterações interruptivas na API de ambientes. Consulte o registro e a documentação do Ambient<T> para ver detalhes (I4c7ee, b/143769776, links em inglês)
  • Mudanças do LayoutCoordinates para fazer com que providedAlignmentLines seja um grupo em vez de um mapa e fazer com que LayoutCoordinates implemente o operador get() em vez de recuperar um valor. Isso facilita a modificação de um ou mais valores do conjunto sem criar uma nova coleção para cada modificador. (I7112a, link em inglês)
  • LayoutGoordinates não tem mais uma propriedade position. A propriedade position não faz sentido ao considerar LayoutModifiers, rotação ou dimensionamento. Em vez disso, os desenvolvedores usarão parentCoordinates e childToLocal() para calcular a transformação de um LayoutCoordinate em outro.
  • LayoutCoordinates usa IntPxSize para a propriedade de tamanho em vez de "PxSize". Os layouts usam tamanhos de pixel com números inteiros. Portanto, todos os tamanhos de layout precisam usar números inteiros, e não valores de pontos flutuantes. (I7731b, link em inglês)
  • Adição do Adapterlist, um componente de lista de rolagem que apenas compõe e apresenta os itens visíveis. Os problemas conhecidos atualmente incluem o fato de que ele só é vertical e não processa integralmente todos os casos de mudança nos filhos. (I4b7b0, link em inglês)
  • Adição de compatibilidade inicial com a incorporação do Android Views no Compose. Veja a demonstração do ViewInCompose.kt para saber mais detalhes. (I6d1ce, link em inglês)
  • Atualização do LayoutAlign para não preencher mais o espaço disponível (I2b14f, link em inglês)
  • Adição dos módulos androidx.ui:ui-material-icons-core e androidx.ui:ui-material-icons-extended. Você pode depender de androidx.ui:ui-material-icons-extended para poder usar diretamente todos os ícones do material (material.io/icons, link e inglês) pelo Compose. Um pequeno subconjunto (que será expandido no futuro), incluindo os ícones mais usados, será incluído diretamente como parte da biblioteca principal de material de IU. Portanto, não será necessário adicionar essa grande dependência para usar ícones como o Menu. Consulte a documentação do androidx.ui.material.icons.Icons e as amostras vinculadas para saber mais informações.
  • Remoção do composto AspectRatio em favor do modificador. Os compostos FlexColumn, FlexRow e o modificador do Spacing obsoletos foram excluídos (Iec8a7)
  • O ButtonStyle foi substituído por funções distintas, e a sobrecarga de texto (string) foi removida. Consulte amostras do Button atualizadas para ver informações de uso. (If63ab, b/146478620, b/146482131, links em inglês)

Correções de bugs

  • Density e DensityScope foram unidos em uma única interface. Agora você pode usar DensityAmbient.current em vez de ambientDensity(). Em vez de withDensity(density), apenas with(density) (I11cb1, link em inglês)

Problemas conhecidos

  • Mudanças nas propriedades semânticas de um componente fazem incorretamente que todo o estado nos filhos seja perdido. Isso causa falhas nas animações e em tudo o que dependa do estado ser persistido nas recomposições. Considerando que no momento lambdas não podem ser comparados, isso inclui todos os componentes que definem uma ação semântica usando um lambda diferente de remember, como Scroller. Isso será corrigido na próxima versão. (b/148606417, link em inglês)

Versão 0.1.0-dev04

29 de janeiro de 2020

androidx.ui:ui-*:0.1.0-dev04 é lançado. As confirmações incluídas nessa versão podem ser encontradas clicando aqui (link em inglês).

Mudanças na API

  • IDs de ponteiro universalmente exclusivos (I42cde, todos os links desta lista estão em inglês)
  • Integração do nó semântico (aosp/1138236)
  • Melhorias na superfície da API de Constraints (I0fd15)
  • Refatoração de PathParser e PathNode/PathCommand (I715ae)
  • Atualização da superfície da API de DpConstraints (I712a0)
  • Adição de compatibilidade com modificadores que implementam várias interfaces (I22c16)
  • Implementação de cancelamento do restante dos detectores de gestos (I349f4)
  • Adição de Color.compositeOver() a Color (I5379d)
  • Remoção de algumas classes desnecessárias para androidx.ui:ui-core: ImageByteFormat, ImageRepeat, Matrix2 (I45e6b)
  • Ativação da compilação incremental do Kotlin em projetos Compose (b/144304390)
  • Concatenação de modificadores com + (Ic33d3)
  • Adição de modificador LayoutTag (I69fe4)
  • Adição de atributos ParagraphStyle a TextStyle (If0d40)
  • Adição de DrawModifier, um tipo modificador que pode desenhar na superfície do layout modificado. (I5fa56)
  • Mudança do armazenamento para que a posição do modificador seja relativa (I5977f)
  • Adição de API de testes para realização de deslizes em elementos (I9125a)
  • Adição de componente Box para combinar layouts e desenhar funcionalidades comuns (I6e2a7)
  • Agora, os controles de rolagem têm o comportamento do movimento de arremesso nativo do Android (b/147493715)
  • Substituição de DrawBorder pelo Border Modifier (Id335a)
  • Melhoria na detecção de gestos do controle de rolagem (I87d36)
  • Adição de metadados contentColor à base (Icd074)
  • Adição do componente material Scaffold. O Scaffold implementa a estrutura visual do layout com Material Design básico (I7731b)
  • Uso do novo parâmetro de superfície contentColor nos botões (b/146210556)
  • Remoção de textStyle.withOpacity() (I8cc9a)
  • Adição do subsistema Emphasis (Ife95c)
  • FloatingActionButtonKtAgora, as propriedades de FABs são particulares (I9c121)
  • Implementação das primeiras iterações de um Snackbar (If1c08)
  • Adição de compatibilidade inicial com um tema escuro (I6323a)
  • Adição de tamanho, centro e localToGlobal a GestureScope (I1ea37)
  • Adição de API para injeção do gesto de clique duplo (I44902)
  • Adição de sendLongClick methods a GestureScope (Ic7db9)
  • Conversão (x, y) para PxPosition na injeção de gestos (Ifefa4)
  • Adição de velocidade desejada ao gesto injetado (I3b9df)
  • Adição de captura de bitmaps à API de teste Compose (androidx.ui:ui-test). (I4e36c)
  • Transferência de doClick para GestureScope (I56211)
  • Adição de findBySubstring e filtros correspondentes a FindersKt. (Ief0b9)
  • Refatoração de seleção de texto delimitada a 1 caractere (Iff757)
  • Remoção de TextSpan (Iebece)
  • Remoção de classes Composition em favor da classe básica do Composer (Ieadbf)
  • Mudança do vetor defaultWidth/defaultHeight para uso de Dp (Iad267)
  • Geração correta de grupos em torno das chamadas in-line que podem ser compostas (Ibf739)
  • Ativação de prototipagem de sinalização nos detectores de gestos (I4b7b0)
  • Mudança dos argumentos maxLines e ellipsis de anulável a não nulo (I46dac)
  • Agora, AnnotatedString usa SpanStyle (Ib6d3e)
  • Adição de compatibilidade de modificadores com WithConstraints (b/145399789)
  • Passagem de estilo de parágrafo para TextDelegate (Id2d4a)
  • Adição de classe SpanStyle (Ifdb4f)
  • Uso do valor padrão em vez do Float anulável em TextGeometricTransform (I1bf00)
  • Adição de PreviewActivity a androidx.ui:ui-tooling (Ic8988)
  • Agora, ModelObserver tem uma única linha de execução (b/146144712)
  • Adição de comparativo de mercado a ModelObserver (Ia176b)
  • Remoção de callbacks para cancelamento de chamada quando PointerInputNode é removido da árvore (I7112a)
  • Remoção do modificador LayoutInflexible de linha e coluna (I0d820)
  • Derivação dos modificadores de layout de ParentDataModifier (I49b6a)
  • Adição do modificador Wrapped (I6f8df)
  • Adição dos modificadores Aligned (Ifc581)
  • Adição de layout restrito ao Compose (I175ad)

Refatorações

  • Transferência de gráficos de androidx.ui:ui-core para androidx.ui:ui-graphics (Ic17b0)
  • Mudança de módulo e pacote de Dp, IntPx etc. para androidx.ui:ui-unit e androidx.ui:ui-util (I45fe4)
  • Refatoração de efeitos para @Composable (Ie2686)