Começando com uma nova versão recente do ADT, notei esse novo atributo nos arquivos XML de layout, por exemplo:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".MainActivity" />
Para que é utilizado "tools: context"?
Como ele sabe o caminho exato para a atividade que está escrita lá? Ele analisa o pacote do aplicativo, dentro do manifesto?
É limitado a classes que estendem o Contexto ou apenas atividades? É utilizável para itens do ListView, etc.?
android
xml
android-layout
android-context
android-tools-namespace
desenvolvedor android
fonte
fonte
Respostas:
Essa é a atividade que o editor da interface do usuário das ferramentas usa para renderizar a visualização do layout. Está documentado aqui :
fonte
Activity
estendeContext
, então não tem certeza do que você quer dizer? Pode estar fazendo muito mais, se você estiver interessado, verifique o código fonte, está disponível. Não conheço nenhum detalhe.Esse atributo é basicamente a persistência da seleção "Atividade Associada" acima do layout. No tempo de execução, um layout é sempre associado a uma atividade. Obviamente, pode estar associado a mais de um, mas pelo menos um. Na ferramenta, precisamos saber sobre esse mapeamento (que em tempo de execução acontece na outra direção; uma atividade pode chamar setContentView (layout) para exibir um layout) para gerar determinados recursos.
No momento, estamos usando apenas uma coisa: Escolher o tema certo a ser exibido para um layout (já que o arquivo de manifesto pode registrar temas a serem usados em uma atividade e, uma vez que conhecemos a atividade associada ao layout, podemos escolher o tema certo a ser mostrado para o layout). No futuro, usaremos isso para gerar recursos adicionais - como renderizar a barra de ação (que está associada à atividade), um local para adicionar manipuladores de clique, etc.
A razão pela qual este é um atributo tools: namespace é que este é apenas um mapeamento em tempo de design para uso da ferramenta. O layout em si pode ser usado por várias atividades / fragmentos, etc. Queremos apenas dar uma maneira de escolher uma ligação de tempo de design, para que possamos, por exemplo, mostrar o tema certo; você pode alterá-lo a qualquer momento, assim como você pode alterar nossa lista de ligações e ligações de fragmentos, etc.
(Aqui está o changeset completo, com mais detalhes sobre isso )
E sim, o link que a Nikolay listado acima mostra como o novo seletor de configuração se parece e funciona
Mais uma coisa: o espaço para nome "ferramentas" é especial. A ferramenta de empacotamento do Android sabe ignorá-lo; portanto, nenhum desses atributos será empacotado no APK. Estamos usando-o para metadados extras no layout. É também onde, por exemplo, os atributos para suprimir avisos de fiapos são armazenados - como ferramentas: ignorar.
fonte
tools:context
valor emTextView
campo. Como isso soa como um caso de uso global para aplicar um tema a todo o layout, por que ele não é colocado no layout raiz?De acordo com o site do projeto Ferramentas Android :
ferramentas: contexto
Esse atributo geralmente é definido no elemento raiz em um arquivo XML de layout e registra a qual atividade o layout está associado (no momento do design, pois obviamente um layout pode ser usado por mais de um layout). Por exemplo, isso será usado pelo editor de layout para adivinhar um tema padrão, pois os temas são definidos no manifesto e estão associados a atividades, não a layouts. Você pode usar o mesmo prefixo de ponto que nos manifestos para especificar apenas a classe de atividade sem o nome completo do pacote de aplicativos como prefixo.
Usado por: Editores de layout no Studio & Eclipse, Lint
fonte
1.Descrição
tools: context = "activity name"
ele não será empacotado noapk
.OnlyADT
Editor de Layout no contexto de renderização correspondente do conjunto de arquivos Layout atual, mostre seu Layout atual na renderização, o contexto é o nome da atividade que corresponde à atividade, se a atividade nomanifest
arquivo definir um Tema,ADT
O Editor de Layout renderizará seu Layout atual de acordo com oMainActivity
Tema. Significa que, se você definir o Tema, defina. A Luz (a outra), você vê no gerenciador de layout visual o controle de fundo do que deve ser o Tema. Parece a luz. Apenas para mostrar o que você vê é o que obtém resultados.Algumas pessoas vêem entenderão algumas, outras vêem também não sabem, vou acrescentar algumas palavras de explicação:
2. amostra
Descrição 3.Specific
1.O
tools: context = "activity name"
não será empacotado noapk
(entendimento: o equivalente a isso é comentado, o compilado não tem efeito).2.Somente
ADT
Editor de layout (ou seja, para o ícone acima no lado direito do simulador) no contexto de renderização correspondente do conjunto de arquivos de layout atual, o Layout do XML atual na renderização de contexto é o nome da atividade que corresponde à atividade, se a atividade no arquivo de manifesto definir um Tema, oADT
Editor de Layout renderizará seu Layout atual de acordo com oMainActivity
Tema. Significa que, se você definir o Tema, defina-o. O Light também pode ser (outro). (Entenda: você adicionoutools: context = "activity name"
, o layout XML está processando uma atividade especificada, estabelece um Tema no arquivo de manifesto, na foto acima, o estilo do Tema do simulador à direita também seguirá as alterações correspondentes ao Tema.)4. resumo
Em resumo, essas propriedades visam principalmente as ferramentas corretas, o tempo de depuração do simulador exibe o status e a compilação não funciona,
fonte
"Tools: context" é um dos atributos de design que pode facilitar a criação de layout em XML na estrutura de desenvolvimento. Este atributo é usado para mostrar à estrutura de desenvolvimento qual classe de atividade é escolhida para implementar o layout. Usando "ferramentas: contexto", o Android Studio escolhe o tema necessário para a visualização automaticamente.
Se você quiser saber mais sobre outros atributos e ferramentas úteis para o desenvolvimento de aplicativos para Android, consulte esta análise: http://cases.azoft.com/4-must-know-tools-for-effective-android -desenvolvimento/
fonte
Esta é a melhor solução: https://developer.android.com/studio/write/tool-attributes
Como atributos de design, podemos definir o contexto activty em xml, como
Adaptador:
Você pode navegar para a classe java ao clicar no ícone marcado e as ferramentas têm mais recursos, como
etx
fonte
tools:context=".MainActivity"
thisline é usado no arquivo xml que indica o arquivo de origem java usado para acessar esse arquivo xml. significa mostrar essa visualização xml para arquivos java perticulares.fonte