Como usar fragmentos em seus aplicativos Android para uma interface de usuário poderosa e dinâmica

Autor: John Stephens
Data De Criação: 28 Janeiro 2021
Data De Atualização: 19 Poderia 2024
Anonim
Como usar fragmentos em seus aplicativos Android para uma interface de usuário poderosa e dinâmica - Aplicativos
Como usar fragmentos em seus aplicativos Android para uma interface de usuário poderosa e dinâmica - Aplicativos

Contente


Nota: Este artigo pressupõe que você esteja familiarizado com os conceitos básicos de desenvolvimento Android e Java. Você já deve poder criar layouts básicos e usar visualizações, onClick e findViewByID. Se você entender esses conceitos, estará pronto para aprender a usar fragmentos!

Fragmentos são um recurso poderoso da boa interface do usuário do Android que permite abordar o design de aplicativos de maneira modular. Essas são visões distintas que podem conter layouts inteiros e que acompanham seu próprio código Java. Ao dividir sua interface do usuário dessa maneira, você pode criar layouts mais lógicos que são mais fáceis de entender para os usuários. Você pode fornecer informações e controles adicionais sem que eles precisem sair da atividade.

Veja também: Fragmentos sem complicações: Usando o componente de arquitetura de navegação do Android


Fragmentos concedem a você consideravelmente mais opções no design do seu aplicativo e podem melhorar substancialmente a experiência do usuário

Além disso, os fragmentos agem como classes e objetos, pois você pode ter vários instâncias do mesmo fragmento. Isso significa que você pode reutilizar o mesmo layout repetidamente sem precisar reescrever o código ou até mostrar duas versões diferentes lado a lado.

Em suma, enquanto isso ainda é outro o que aprender quando se trata da lista de afazeres aparentemente interminável envolvida com aplicativos Android, é algo que pode conceder a você consideravelmente mais opções no design do aplicativo e melhorar substancialmente a experiência do usuário - fazendo com que valha a pena o tempo gasto familiarizando .

Como criar seu primeiro fragmento Android

Então, o que poderíamos fazer com fragmentos que não fariam sentido de outra maneira?


Talvez tenhamos uma lista de arquivos - talvez essa seja uma galeria de imagens - e desejemos mostrar uma descrição e dar ao usuário a opção de excluir ou compartilhar. Aquele tipo de coisa. Poderíamos enviá-los para uma nova página "Descrição" a cada vez usando uma atividade separada, mas se você usar fragmentos, podemos mantê-los na página que será menos dissonante.

Abra o Android Studio e crie uma lista de imagens aleatórias em activity_main.xml. Estou usando fotos de Dragon Ball Super porque sou nerd e é isso que tenho no meu PC ...

Agora vamos criar nosso primeiro fragmento.

Para fazer isso, você vai para Arquivo> Novo> Fragmento. MainActivity.java precisa ser selecionado à esquerda quando você fizer isso e, por enquanto, estará escolhendo um fragmento "em branco". Você poderá escolher um nome para a nova criação, que chamaremos de "Descrição". Desmarque as duas caixas abaixo - não precisamos disso agora.

Feito isso, você descobrirá que agora não apenas possui um novo arquivo java chamado Description.java, mas também um novo arquivo de layout chamado fragment_description.xml - como se tivesse criado uma nova classe! Isso significa que você colocará o código que acompanha o seu novo fragmento em seu próprio arquivo java separado.

Adicionando layouts, visualizações e código

A boa notícia é que é muito fácil adicionar visualizações e um layout quando usamos fragmentos. Faremos isso da mesma maneira que normalmente editando o fragment_timer.xml.

Vamos usar um layout linear novamente e, desta vez, adicionar alguns controles e texto descritivo. Você pode colar qualquer coisa aqui por enquanto.

Então agora a próxima pergunta é: como você faz isso realmente aparecer no seu aplicativo?

Você pode fazer isso adicionando o fragmento à atividade, como faria em qualquer outra exibição. Portanto, vá para activity_main.xml e adicione a visualização para ocupar uma parte da tela - talvez na parte inferior.

Se você quiser fazer do jeito que eu fiz, usei um layout linear vertical e dei a todas as imagens um peso de 1 e o fragmento um peso de 2.

Você notará que a visualização não mostra o fragmento real, apenas um marcador de posição. Da mesma forma, observe que eu precisei incluir o nome do fragmento no XML, para que o Android saiba onde encontrá-lo. Você também precisa de um ID para cada fragmento.

O código

Conforme discutido, o código que precisamos usar fragmentos será inserido em seu próprio arquivo java. Nesse caso, esse é o arquivo Description.java.

Se você verificar esta página, verá que existe um construtor (como em qualquer classe que cria um objeto) e um método chamado onCreateView. Esse método é o local em que o xml é usado para aumentar essa visualização e também é o equivalente ao seu valor usual. onCreate método em uma atividade padrão.

Na maioria das vezes, você pode fazer as coisas como faria normalmente aqui. findViewByID funciona e você pode usá-lo para alterar o texto etc., mas precisará obter a referência um pouco diferente. Mude a linha que lê:

retornar inflater.inflate (R.layout.fragment_descriptioncontainer, false);

Para:

Exibir v = inflater.inflate (R.layout.fragment_descriptioncontainer, false);

E então use:

v.findViewByID.

Agora você pode acessar suas visualizações como faria normalmente:

public View onCreateView (inflador LayoutInflater, contêiner ViewGroup, pacote salvoInstanceState) {Visualizar v = inflater.inflate (R.layout.fragment_descriptioncontainer, false); Botão okButton = v.findViewById (R.id.Está bem) ;; Botão shareButton = v.findViewById (R.id.Compartilhar); okButton.setOnClickListener (novo View.OnClickListener () {public void onClick (exibição v) {Toast.makeText(getActivity (), "OK!", Toast.LENGTH_LONG ).mostrar(); }}); shareButton.setOnClickListener (novo View.OnClickListener () {public void onClick (exibição v) {Toast.makeText(getActivity (), "Compartilhando ...", Brinde.LENGTH_LONG ).mostrar(); }}); retornar v; }}

Use fragmentos com várias instâncias

Você pode ver como é muito mais fácil criar uma interface do usuário e código simplificados quando usamos fragmentos. Em vez de usar layouts dentro de layouts e manipular muitos cliques em um único arquivo Java. Além disso, essa abordagem "modular" permitirá que você use essa visualização em atividades e até em menus e outros locais dinâmicos.

Mas a parte realmente interessante é o fato de que você pode ter várias instâncias desse mesmo fragmento, todas existindo ao mesmo tempo.

Para fazer isso é simples: basta adicionar mais de uma visualização e inflar com o mesmo código preciso.

Agora, esperamos que você possa começar a ver parte do poder do uso de fragmentos: imagine ter uma Visualização do Reciclador (uma lista de rolagem) de imagens, cada uma com os detalhes e os controles logo abaixo. Não há necessidade de criar um layout totalmente novo a cada vez e você pode ocultar as visualizações até o usuário clicar na imagem!

Além disso, você também pode gerar novos fragmentos programaticamente. Tudo o que você precisa é um local para o fragmento entrar no seu layout - como um layout de quadro (que chamarei de fragmentTarget) e, em seguida, você pode fazer o seguinte:

Fragmento addedFragment = new Descrição (); Transação FragmentTransaction = getSupportFragmentManager (). BeginTransaction (); transaction.replace (R.id.fragmentTarget, addedFragment); transaction.addToBackStack (nulo); transaction.commit ();

Certifique-se de importar as classes necessárias - você será solicitado sempre que tentar usar fragmentos no seu código. Apenas certifique-se de escolher a opção principal que diz "v4".

Ser capaz de adicionar fragmentos programaticamente é importante porque significa que poderíamos gerar uma lista dinâmica de imagens (que baixamos, localizadas em uma pasta específica etc.) e, em seguida, os detalhes aparecerão imediatamente para nós.

Portanto, neste novo exemplo, o segundo fragmento foi adicionado programaticamente.

Finalmente, você pode querer mudar a aparência de seus fragmentos, dependendo de onde eles estão localizados. A boa notícia é que você pode fazer isso facilmente passando um ID como um pacote configurável ao criar o fragmento e depois extraindo esse valor na outra extremidade.

No MainActivity.java, use:

Pacote configurável = novo pacote configurável (); bundle.putInt ("ID", 1); addedFragment.setArguments (pacote);

E, em seguida, no Description.java, adicione:

int eyeD = 0; Pacote configurável = this.getArguments (); if (pacote configurável! = nulo) {eyeD = pacote configurável.getInt ("ID", 0); } switch (eyeD) {case 1:…

Você pode, por exemplo, fazer com que seu aplicativo mostre notas diferentes para cada imagem.

Comentários finais

Então é assim que você usa fragmentos. Espero que você compreenda o básico e este post tenha lhe dado entendimento suficiente para que você possa ir em frente e descobrir o resto. Mais importante, espero que tenha mostrado alguns dos possíveis usos de fragmentos e o potencial que eles oferecem para um design de aplicativo mais inteligente.

Se você quiser ver outro exemplo de fragmentos em ação, verifique minha postagem recente sobre a criação de um iniciador personalizado!

Desenvolvimento Android:

  • Como criar um aplicativo de realidade virtual para Android em apenas 7 minutos
  • Crie sua própria ação para o Assistente do Google
  • Root Android: Tudo o que você precisa saber!
  • Anatomia de um aplicativo: uma introdução aos ciclos de vida das atividades
  • Android Jetpack: o que significam os anúncios recentes para a Biblioteca de suporte do Android?

Entrar no mundo da fotografia é emocionante, ma também pode er muito caro. O primeiro pao é encontrar uma câmera. Ecolher a correta é importante, então hoje vamo ajud...

ua nova e brilhante câmera Canon é o eu melhor amigo em fotografia. Você a leva para qualquer lugar, tira foto bonita e a carrega em vário lugare. Funciona bem o uficiente com o v...

Novos Posts