Os indicadores de progresso mostram visualmente o status de uma operação. Eles usam o movimento para chamar a atenção do usuário para o quanto o processo está próximo da conclusão, como carregar ou processar dados. Elas também podem indicar que o processamento está ocorrendo, sem referência à proximidade da conclusão.
Considere estes três casos de uso em que você pode usar um indicador de progresso:
- Carregamento de conteúdo: ao buscar conteúdo de uma rede, como o carregamento de uma imagem ou dados de um perfil de usuário.
- Upload de arquivos: informe ao usuário quanto tempo o upload pode levar.
- Processamento longo: enquanto um app está processando uma grande quantidade de dados, comunique ao usuário quanto do total foi concluído.
No Material Design, há dois tipos de indicador de progresso:
- Determinado: mostra exatamente o progresso feito.
- Indeterminado: anima continuamente sem considerar o progresso.
Da mesma forma, um indicador de progresso pode ter um destes dois formatos:
- Linear: uma barra horizontal que é preenchida da esquerda para a direita.
- Circular: um círculo cujo traço cresce em comprimento até abranger toda a circunferência do círculo.
Compatibilidade de versões
Essa implementação exige que o minSDK do projeto seja definido como nível 21 da API ou mais recente.
Dependências
Criar indicadores determinados
Um indicador determinado reflete exatamente o nível de conclusão de uma ação. Use
os elementos combináveis LinearProgressIndicator ou CircularProgressIndicator
e transmita um valor para o parâmetro progress.
O snippet a seguir mostra um exemplo relativamente detalhado. Quando o usuário
pressiona o botão, o app exibe o indicador de progresso e inicia uma
corrotina que aumenta gradualmente o valor de progress. Isso faz com que o
indicador de progresso seja iterado por vez.
Resultados
Quando o carregamento está parcialmente concluído, o indicador linear no exemplo anterior aparece da seguinte maneira:
Da mesma forma, o indicador circular aparece da seguinte maneira:
Criar indicadores indeterminados
Um indicador indeterminado não reflete o quão próxima da conclusão uma operação está. Em vez disso, ele usa o movimento para indicar ao usuário que o processamento está em andamento, mas sem especificar o grau de conclusão.
Para criar um indicador de progresso indeterminado, use o elemento combinável LinearProgressIndicator
ou CircularProgressIndicator, mas não transmita um valor para
progress. O exemplo a seguir demonstra como alternar um
indicador indeterminado com um botão pressionado.
Resultados
Confira abaixo um exemplo dessa implementação quando o indicador está ativo:
Confira a seguir um exemplo da mesma implementação, mas com
LinearProgressIndicator em vez de CircularProgressIndicator.
Pontos principais
Embora existam vários elementos combináveis que podem ser usados para criar indicadores de progresso consistentes com o Material Design, os parâmetros deles não são muito diferentes. Estes são os principais parâmetros que você precisa considerar:
progress: o progresso atual que o indicador mostra. Transmita umFloatentre0.0e1.0.color: a cor do indicador, ou seja, a parte do componente que reflete o progresso e que abrange totalmente o componente quando o progresso é concluído.trackColor: a cor da faixa sobre a qual o indicador é desenhado.
Coleções que contêm este guia
Este guia faz parte destas coleções selecionadas de guias rápidos que abrangem metas mais amplas de desenvolvimento para Android:
Mostrar componentes interativos