android - studio - tools context




Qu'est-ce que "outils: contexte" dans les fichiers de mise en page Android? (5)

En commençant par une nouvelle version récente d'ADT, j'ai remarqué ce nouvel attribut sur les fichiers XML de mise en page, par exemple:

<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" />

A quoi sert "outils: contexte"?

Comment sait-il même le chemin exact de l'activité qui y est écrite? Est-ce qu'il regarde le paquet de l'application, à l'intérieur du manifeste?

Est-ce limité aux classes qui étendent le contexte ou seulement les activités? Est-il utilisable pour les éléments ListView, etc.?


1.Description

tools: context = "activity name" il ne sera pas empaqueté dans l'apk .Seule ADT Layout Editor dans votre fichier Layout actuel définit le contexte de rendu correspondant, affichez votre Layout actuel en rendant le contexte est le nom de l'activité correspond à l'activité, si l'activité dans le fichier manifest définit un thème, puis ADT Layout Editor rendra votre mise en page actuelle en fonction du thème. Cela signifie que si vous définissez le MainActivity définir un thème. La Lumière (l'autre), alors vous voyez dans le gestionnaire de disposition visuelle o le contrôle de fond de ce qui devrait être le thème. La lumière ressemble. Seulement pour vous montrer ce que vous voyez est ce que vous obtenez des résultats.

Certaines personnes verront, d'autres comprendront, d'autres ne le sauront pas, j'ajouterai quelques mots d'explication:

2. Échantillon

Prenez un tools:text simple tools:text , par exemple, un peu plus d'image, pratique pour mieux comprendre les tools:context

<TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="sample name1" />

<TextView
    android:id="@+id/text2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="sample name2" />

TextView 1 a adopté le android: text , et utiliser les tools:text dans le TextView 2, sur le côté droit de l'éditeur Layout affichera l' sample name1 , l' sample name2 deux police, si après avoir exécuté le code pour compiler, généré apk , terminal afficher uniquement le sample name1 l' sample name1 , ne montre pas le nom de l' sample name2 les mots. Vous pouvez essayer de courir, voir comment l'effet.

3. Description spécifique

1.Les tools: context = "activity name" il ne sera pas empaqueté dans l' apk (compréhension: l'équivalent de ceci est commenté, le compilé sans effet.)

2.Seulement l'éditeur de mise en page ADT (pour l'icône ci-dessus sur le côté droit du simulateur) dans le contexte de rendu correspondant du jeu de mise en page actuel, la mise en page du XML courant dans le rendu du contexte correspond au nom de l'activité Si l'activité dans le fichier manifeste définit un thème, l'éditeur de mise en page ADT affichera votre mise en page actuelle en fonction du thème. Cela signifie que si vous définissez le jeu MainActivity sur un thème. La Lumière peut aussi être (autre). (Comprendre: vous avez ajouté des tools: context = "activity name" , la mise en page XML rend l'activité spécifiée, établit un Thème dans le fichier manifeste, illustré ci-dessus au thème.)

4.summary

Pour résumer, ces propriétés visaient principalement au-dessus des bons outils, l'état d'affichage du temps de débogage du simulateur, et la compilation ne fonctionne pas,


"Tools: context" est l'un des attributs de conception qui peut faciliter la création de mise en page en XML dans le cadre de développement. Cet attribut est utilisé pour montrer au framework de développement quelle classe d'activité est choisie pour implémenter la mise en page. Avec "Outils: contexte", Android Studio choisit automatiquement le thème nécessaire pour l'aperçu.

Si vous souhaitez en savoir plus sur d'autres attributs et outils utiles pour le développement d'applications Android, jetez un oeil à cette critique: http://cases.azoft.com/4-must-know-tools-for-effective-android-development/


Cet attribut est essentiellement la persistance de la sélection "Activité associée" au-dessus de la mise en page. Lors de l'exécution, une mise en page est toujours associée à une activité. Il peut bien sûr être associé à plus d'un, mais au moins un. Dans l'outil, nous avons besoin de savoir sur ce mappage (qui à l'exécution se produit dans l'autre sens, une activité peut appeler setContentView (layout) pour afficher une disposition) afin de piloter certaines fonctionnalités.

En ce moment, nous ne l'utilisons que pour une seule chose: Choisir le bon thème à afficher pour une mise en page (puisque le fichier manifeste peut enregistrer des thèmes à utiliser pour une activité , et une fois que nous connaissons l'activité associée à la mise en page le bon thème à montrer pour la mise en page). Dans le futur, nous utiliserons ceci pour piloter des fonctionnalités supplémentaires - telles que le rendu de la barre d'action (qui est associée à l'activité), un endroit pour ajouter des gestionnaires onClick, etc.

La raison pour laquelle il s'agit d'un attribut tools: namespace est qu'il s'agit uniquement d'un mappage de conception utilisé par l'outil. La mise en page elle-même peut être utilisée par plusieurs activités / fragments etc. Nous voulons juste vous donner un moyen de choisir une liaison au moment du design de sorte que nous puissions par exemple montrer le bon thème; vous pouvez le changer à tout moment, tout comme vous pouvez changer notre listview et les liaisons de fragment, etc.

(Voici le changement complet qui a plus de détails à this )

Et oui, here Nikolay énumérés ci-dessus montre comment le nouveau sélecteur de configuration ressemble et fonctionne

Une dernière chose: l'espace de noms "tools" est spécial. L'outil de packaging android sait l'ignorer, donc aucun de ces attributs ne sera empaqueté dans l'APK. Nous l'utilisons pour des métadonnées supplémentaires dans la mise en page. C'est aussi par exemple que les attributs pour supprimer les avertissements de peluches sont stockés - en tant qu'outils: ignore.


Il fournit un contexte pour les outils de développement, quant à l'endroit où cette mise en page sera utilisée, de sorte que les outils peuvent fournir une meilleure assistance aux développeurs, tels que:

Rendu plus précis des aperçus, en tenant compte de l'activité d'hébergement et de son thème, des assistants plus intelligents, tels que les outils de correction rapide précités: le contexte est complètement optionnel. Les outils de développement peuvent et fonctionnent sans cela. Ces outils peuvent vous fournir une aide quelque peu dégradée, mais c'est votre choix.

outils: le contexte - ou n'importe quel attribut dans l'espace de noms des outils - n'aura aucun impact au moment de l'exécution. Je n'ai pas vérifié, mais j'espère qu'ils seront même supprimés lors de l'emballage de l'APK, car ils n'ont aucune utilité à l'exécution.


tools:context=".MainActivity" thisline est utilisé dans un fichier xml qui indique quel fichier source java est utilisé pour accéder à ce fichier xml. cela signifie montrer cet aperçu xml pour les fichiers java perticular.





android-tools-namespace