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


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.?


821
2018-06-18 07:25


origine


Réponses:


C'est probablement l'activité que l'éditeur d'interface utilisateur utilise pour rendre votre mise en page (il trouvera le bon thème en fonction de l'activité). Ceci est documenté ici (vers le milieu de l'article, abonnez-vous à cette page pour vous tenir au courant).


374
2018-06-18 07:56



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.

À l'heure actuelle, 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 mise en page). activité, et une fois que nous connaissons l'activité associée à la mise en page, nous pouvons choisir le bon thème à afficher 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 sur ce)

Et oui, le lien 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.


352
2018-06-19 23:33



Selon le Site du projet Android Tools:

outils: contexte 

Cet attribut est généralement défini sur l'élément racine dans un fichier XML de mise en page et enregistre l'activité associée à la mise en page (au moment du design, car il est évident qu'une mise en page peut être utilisée par plusieurs mises en page). Cela sera par exemple utilisé par l'éditeur de disposition pour deviner un thème par défaut, puisque les thèmes sont définis dans le manifeste et sont associés à des activités, pas à des mises en page. Vous pouvez utiliser le même préfixe de point que dans les manifestes pour simplement spécifier la classe d'activité sans le nom complet du package d'application en tant que préfixe.

<android.support.v7.widget.GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"    
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">  

Utilisé par: Editeurs de mise en page dans Studio & Eclipse, Lint


84
2018-02-20 16:16



"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, consultez cet avis: http://cases.azoft.com/4-must-know-tools-for-effective-android-development/


5
2017-07-13 11:08



1.Description

tools: context = "activity name" il ne sera pas emballé dans le apk .Seulement ADT L'éditeur de mise en page dans votre fichier Layout actuel définit le contexte de rendu correspondant, affichez votre mise en page actuelle dans le rendu du contexte si le nom de l'activité correspond à l'activité, si l'activité dans le manifest fichier définir un thème, puis ADT L'éditeur de disposition rendra votre mise en page actuelle en fonction du thème. Cela signifie que si vous définissez 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 simple tools:text, par exemple, un peu plus d'image, pratique pour mieux comprendre le 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" />

enter image description here

TextView1 a adopté le android: text, et utilisez le tools:text dans le TextView2, sur le côté droit de l'éditeur Layout affichera le sample name1, la sample name2 deux polices, si après avoir exécuté le code à compiler, généré apk, l'affichage du terminal seulement sample name1, ne montre pas le sample name2 les mots. Vous pouvez essayer de courir, voir comment l'effet.

3. Description spécifique

1.Le tools: context = "activity name" il ne sera pas emballé dans le apk(Compréhension: l'équivalent de ceci est commenté, l'effet nul compilé.)

2. Seulement ADT Éditeur de mise en page (c'est-à-dire, 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 est le nom de l'activité. le fichier manifeste définit un thème, puis ADT L'éditeur de disposition rendra votre mise en page actuelle en fonction du thème. Cela signifie que si vous définissez MainActivity définir un thème. La Lumière peut aussi être (autre). (Comprendre: vous avez ajouté tools: context = "activity name", la mise en page XML est le rendu de l'activité spécifiée, établit un thème dans le fichier manifeste, illustré ci-dessus à droite le style de thème de simulateur suivra également les changements correspondant 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,


4
2017-10-15 03:57



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.


1
2018-05-08 07:33