Noções básicas sobre visualizações e grupos de visualizações

Você acha mais fácil aprender com vídeo? Por que não conferir nosso curso:

1. Visualizações

View objetos são usados ​​especificamente para desenhar conteúdo na tela de um dispositivo Android. Embora você possa instanciar um View em seu código Java, a maneira mais fácil de usá-los é por meio de um arquivo de layout XML. Um exemplo disso pode ser visto quando você cria um aplicativo simples “Hello World” no Android Studio. O arquivo de layout é aquele chamado activity_main.xmlparecendo algo assim.

O exemplo acima mostra um tipo de View que será exibido na tela. o layout_width e layout_height atributos indicam que View só deve ocupar tanto espaço na tela quanto necessário para exibir o texto “Hello World!”. o id atributo é como isso View pode ser referenciado em seu código Java assim:

Embora você possa definir atributos para um View em XML, você também pode alterar atributos em seu código Java, como alterar o texto do acima TextView.

O código acima atualiza o texto da TextView para “Esta é uma exibição alterada”. Isso é o que parece quando você executa o aplicativo.

Agora que você sabe como trabalhar com View objetos, vamos ver alguns dos diferentes tipos que estão disponíveis para você no Android SDK.

Exibir visualizações

TextView

Isto é o View usamos no exemplo acima. O principal trabalho do TextView é exibir texto na tela de um aplicativo Android. Embora isso possa parecer uma tarefa simples, o TextView contém uma lógica complexa que permite exibir texto marcado, hiperlinks, números de telefone, e-mails e outras funcionalidades úteis.

Aqui estão alguns atributos importantes que você pode definir para um TextView em XML:

  • android:layout_width — Isso definirá a largura do TextView elemento. Pode ser uma dinâmica constante como match_parent ou wrap_content ou pode ser um valor fixo como 20dp ou 40sp etc.
  • android:layout_height — Isso definirá a altura do TextView elemento. Também pode ser um valor dinâmico constante ou algo fixo como 15dp ou 20.5sp etc.
  • android:texto — Você pode usar este atributo para definir o texto para o que deseja exibir na tela.
  • android:textColor — Use este atributo para especificar um valor de cor como referência a outra imagem ou como valor de cor hexadecimal.
  • android: gravidade — Controle o alinhamento do texto quando ele ocupa menos espaço do que o TextView. Você pode configurá-lo como superior, inferior, esquerdo, direito, centro etc.

o TextView class lhe dá acesso a muitos métodos para obter e definir os valores de diferentes propriedades. Já vimos como usar setText() para especificar um valor de texto para a exibição. Da mesma forma, você pode especificar valores para outros atributos, como o textColor e gravity usando os métodos setTextColor() e setGravity().

TextClock é outra classe útil que estende TextView para exibir a data e/ou hora atual para os usuários como uma string formatada. Você também pode usar os seguintes atributos com esta classe para mostrar a hora em um formato específico ou de um fuso horário específico.

  • android:formato12hora — Este atributo é útil para especificar o formato para mostrar a data/hora no modo de 12 horas.
  • androidformat24 horas — Este atributo é útil para especificar o formato para mostrar a data/hora no modo 24 horas.
  • android: fuso horário — Este atributo é útil para especificar o fuso horário a ser usado.

ImageView

o ImageView classe estende o View classe. Como o nome indica, o ImageView é projetado especificamente para exibir imagens na tela. Isso pode ser usado para exibir recursos armazenados no aplicativo ou para exibir imagens baixadas da Internet.

Entrada e Controles

Algum View objetos são usados ​​para mais do que apenas exibir conteúdo para usuários. Às vezes você precisa receber algum tipo de entrada para controlar seus aplicativos. Felizmente, o Android oferece vários View subclasses especificamente para este fim.

Button

o Button classe estende-se do TextView classe. É um dos controles mais básicos disponíveis em um aplicativo. Ele ouve os cliques do usuário e chama um método em seu código para que você possa responder adequadamente. Uma vez que, Button estende o TextView podemos usar os métodos e atributos de TextView controlar a aparência e o comportamento de Button. Aqui está um exemplo:

O botão acima irá executar o takeAction() método a cada clique. Tenha em mente que você terá que implementar um método com este nome dentro da classe de atividade do layout.

Switch e CheckBox

o Switch e CheckBox classes têm um estado ativo e inativo que pode ser alternado entre. Isso é útil para alterar as configurações em um aplicativo.

EditText

este View subclasse é uma extensão da classe TextView class e permite que os usuários atualizem o texto contido por meio da entrada do teclado. o EditText classe herda muitos atributos da classe TextView classe para que você possa usar android:layout_width, android:layout_height, android:gravity etc. para controlar a posição e o alinhamento da visualização, bem como seu conteúdo. Você também pode controlar a largura da entrada com android:ems atributo.

o EditText A classe é usada para criar um elemento de interface do usuário para as pessoas inserirem e modificarem o texto. Esta entrada de texto pode ser de diferentes tipos, como o date, number, numberPassword, textPassword, text, textPersonName etc. Todos esses são valores válidos para o android:inputType atributo. O valor que você especificar para o atributo determinará o tipo de teclado mostrado aos usuários.

A imagem a seguir mostra como o teclado se adapta à configuração do inputType para numberPassword ou text.

Diferentes tipos de teclado no EditTextDiferentes tipos de teclado no EditTextDiferentes tipos de teclado no EditText

Visualizações baseadas em adaptador

o AdapterView classe é uma extensão do ViewGroup classe. Enquanto cada um dos itens acima View exemplos são itens únicos, às vezes você deseja exibir uma coleção de itens. Esses View aulas requerem o uso de Adapter para lidar com a exibição da interface de usuário adequada por item em uma coleção. O Adapter faz algumas coisas importantes, como fornecer acesso aos itens de dados que você deseja exibir e criar um View para cada item do conjunto de dados.

Algumas classes comuns que são subclasses diretas ou indiretas de AdapterView estão listados abaixo.

ListView

o ListView A classe é usada para exibir uma coleção de itens em um formato linear, de coluna única e rolável. View. Cada item individual pode ser selecionado para exibir mais detalhes ou executar uma ação relacionada a esse item. Tenha em mente que um ListView não contém nenhuma informação sobre o tipo e o conteúdo das visualizações que contém.

o ListView classe já existe há algum tempo. Agora existe uma alternativa RecyclerView classe que você deve considerar usar em vez de ListView. RecyclerView é mais flexível e oferece melhor desempenho em comparação.

GridView

Semelhante ao ListView classe, o GridView aula leva um Adapter e exibe itens em várias colunas na tela. o GridView A classe basicamente fornece uma grade de rolagem bidimensional.

o GridView é adequado para criar layouts nos quais você deseja criar um contêiner rolável com itens exibidos na forma de uma grade. No entanto, GridView agora está obsoleto assim como ListView. Você deve considerar o uso RecyclerView em seu lugar.

Spinner

A coleção definitiva View classe para você aprender neste tutorial é a Spinner classe. Ele aceita um Adapter e exibe itens em um menu suspenso quando o Spinner é clicado para que um item possa ser selecionado pelo usuário.

2. Ver grupos

UMA ViewGroup é um objeto invisível usado para conter outros View e ViewGroup objetos para organizar e controlar o layout de uma tela. ViewGroup objetos são usados ​​para criar uma hierarquia de View objetos (veja abaixo) para que você possa criar layouts mais complexos. Dito isto, quanto mais simples você puder manter um layout, mais eficiente ele será.

ViewGroup objetos podem ser instanciados da mesma maneira que o padrão View itens em XML ou em código Java.

Enquanto todos ViewGroup classes executam uma tarefa semelhante, cada ViewGroup subclasse existe para um propósito específico. Vamos dar uma olhada em alguns deles.

LinearLayout

o LinearLayout existe para exibir itens em uma ordem empilhada, horizontal ou verticalmente. Layouts lineares também podem ser usados ​​para atribuir pesos a View itens para que os itens sejam espaçados na tela em uma proporção entre si.

RelativeLayout

este ViewGroup subclasse permite que você exiba itens na tela em relação uns aos outros, proporcionando mais flexibilidade e liberdade sobre como seu layout aparece em comparação com o LinearLayout.

FrameLayout

Projetado para exibir um único filho View por vez, o FrameLayout desenha itens em uma pilha e fornece uma maneira simples de exibir um item em vários tamanhos de tela.

ScrollView

É uma extensão do FrameLayout classe. o ScrollView class manipula a rolagem de seu objeto filho na tela. Você também pode adicionar várias visualizações na visualização de rolagem. Apenas certifique-se de que o filho direto seja um grupo de exibição e que outros modos de exibição sejam colocados nesse filho.

ViewPager

Ele é usado para gerenciar várias visualizações enquanto exibe apenas uma de cada vez, a ViewPager classe aceita um Adapter e permite que os usuários deslizem para a esquerda e para a direita para ver todos os View Itens.

RecyclerView

o RecyclerView classe é uma ViewGroup subclasse que é uma melhoria em relação à agora obsoleta ListView e GridView classes e que foi disponibilizado pelo Google por meio da biblioteca de suporte do AndroidX para versões mais antigas do Android.

o RecyclerView A classe requer o uso do padrão de design do viewholder para reciclagem eficiente de itens e suporta o uso de um LayoutManagerum decorador e um animador de itens para tornar esse componente incrivelmente flexível ao custo da simplicidade.

Em termos simples, o RecyclerView class fornece uma solução moderna e com melhor desempenho para suas necessidades de layout. Pode ser usado com um adequado LayoutManager para criar layouts de lista unidimensional e de grade bidimensional.

o LayoutManager é responsável por várias coisas, como o posicionamento de visualizações de itens e determinar quando deve reciclar visualizações de itens que não estão mais na visualização do usuário.

CoordinatorLayout

o CoordinatorLayout classe usa um Behavior objeto para determinar como a criança View os itens devem ser dispostos e movidos à medida que o usuário interage com seu aplicativo. Ele basicamente permitirá que você coordene diferentes visualizações para que as animações e transições entre elas se tornem perfeitas e fáceis de implementar.

3. Visualizações personalizadas

Embora haja uma grande variedade de View e ViewGroup classes para você usar em seus aplicativos, às vezes você deseja criar algo novo para atender às suas necessidades. Nesse caso, você pode criar uma nova classe Java que estende View ou ViewGroup, dependendo do que você precisa. O ato de criar um novo costume View subclass está além do escopo deste artigo, mas você pode encontrar mais informações neste tutorial do Envato Tuts+ sobre como criar visualizações personalizadas.

Conclusão

Neste tutorial, você aprendeu sobre um dos componentes mais básicos do Android, layouts e visualizações. Dado o quanto esses componentes são fundamentais para o Android, você aprenderá continuamente coisas novas sobre eles à medida que continua trabalhando com a plataforma Android e encontrará novas maneiras de fazer coisas incríveis usando-os em seus projetos.

Este post foi atualizado com contribuições de Nitish Kumar. Nitish é um desenvolvedor web com experiência na criação de sites de comércio eletrônico em várias plataformas. Ele passa seu tempo livre trabalhando em projetos pessoais que facilitam sua vida cotidiana ou fazendo longas caminhadas noturnas com os amigos.

Deixe uma resposta