Beginnend mit einer neuen Version von ADT habe ich dieses neue Attribut in den Layout-XML-Dateien festgestellt, zum Beispiel:
<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" />
Wofür wird "tools: context" verwendet?
Woher kennt es überhaupt den genauen Weg zu der dort geschriebenen Aktivität? Betrachtet es das Paket der App im Manifest?
Ist es auf Klassen beschränkt, die den Kontext erweitern, oder nur auf Aktivitäten? Ist es für ListView-Elemente usw. verwendbar?
android
xml
android-layout
android-context
android-tools-namespace
Android-Entwickler
quelle
quelle
Antworten:
Dies ist die Aktivität, mit der der UI-Editor der Tools Ihre Layoutvorschau rendert. Es ist hier dokumentiert :
quelle
Activity
erweitertContext
, also nicht sicher, was du meinst? Wenn Sie interessiert sind, überprüfen Sie möglicherweise den Quellcode, er ist verfügbar. Ich kenne keine Details.Dieses Attribut ist im Grunde die Persistenz für die Auswahl "Zugehörige Aktivität" über dem Layout. Zur Laufzeit ist ein Layout immer einer Aktivität zugeordnet. Es kann natürlich mit mehr als einem, aber mindestens einem verbunden sein. Im Tool müssen wir über diese Zuordnung Bescheid wissen (die zur Laufzeit in die andere Richtung erfolgt; eine Aktivität kann setContentView (Layout) aufrufen, um ein Layout anzuzeigen), um bestimmte Funktionen zu steuern.
Im Moment verwenden wir es nur für eine Sache: Auswählen des richtigen Themas für ein Layout (da die Manifestdatei Themen registrieren kann, die für eine Aktivität verwendet werden sollen , und sobald wir die mit dem Layout verbundene Aktivität kennen, können wir auswählen das richtige Thema für das Layout). In Zukunft werden wir dies verwenden, um zusätzliche Funktionen zu steuern - z. B. das Rendern der Aktionsleiste (die der Aktivität zugeordnet ist), einen Ort zum Hinzufügen von onClick-Handlern usw.
Der Grund dafür, dass es sich um ein Tools: Namespace-Attribut handelt, ist, dass dies nur eine Entwurfszeitzuordnung zur Verwendung durch das Tool ist. Das Layout selbst kann von mehreren Aktivitäten / Fragmenten usw. verwendet werden. Wir möchten Ihnen nur die Möglichkeit geben, eine Design-Bindungsbindung auszuwählen, damit wir beispielsweise das richtige Thema anzeigen können. Sie können es jederzeit ändern, genauso wie Sie unsere Listenansicht und Fragmentbindungen usw. ändern können.
(Hier ist der vollständige Änderungssatz, der weitere Details dazu enthält. )
Und ja, der oben aufgeführte Link Nikolay zeigt, wie die neue Konfigurationsauswahl aussieht und funktioniert
Noch etwas: Der Namespace "tools" ist etwas Besonderes. Das Android-Packaging-Tool kann es ignorieren, sodass keines dieser Attribute in die APK gepackt wird. Wir verwenden es für zusätzliche Metadaten im Layout. Hier werden beispielsweise auch die Attribute zur Unterdrückung von Flusenwarnungen gespeichert - als Tools: Ignorieren.
quelle
tools:context
Wert in dasTextView
Feld eingefügt. Da dies wie ein globaler Anwendungsfall zum Anwenden eines Themas auf das gesamte Layout klingt, warum wird es nicht im Root-Layout platziert?Laut der Android Tools Project Site :
Werkzeuge: Kontext
Dieses Attribut wird normalerweise für das Stammelement in einer Layout-XML-Datei festgelegt und zeichnet auf, welcher Aktivität das Layout zugeordnet ist (zur Entwurfszeit, da ein Layout offensichtlich von mehr als einem Layout verwendet werden kann). Dies wird beispielsweise vom Layout-Editor verwendet, um ein Standardthema zu erraten, da Themen im Manifest definiert und Aktivitäten und nicht Layouts zugeordnet sind. Sie können dasselbe Punktpräfix wie in Manifesten verwenden, um nur die Aktivitätsklasse ohne den vollständigen Namen des Anwendungspakets als Präfix anzugeben.
Verwendet von: Layout-Editoren in Studio & Eclipse, Lint
quelle
1. Beschreibung
tools: context = "activity name"
Es wird nicht in denapk
.OnlyADT
Layout Editor in Ihrem aktuellen Layout- Dateisatz entsprechend dem Rendering-Kontext gepackt. Zeigen Sie Ihr aktuelles Layout beim Rendern des Kontexts an. Der Aktivitätsname entspricht der Aktivität. Wenn die Aktivität in dermanifest
Datei ein Thema festlegt, dannADT
Der Layout-Editor rendert Ihr aktuelles Layout gemäß demMainActivity
Thema. Bedeutet dies, wenn Sie das Set als Thema festlegen. Das Licht (das andere), dann sehen Sie im visuellen Layout-Manager die Hintergrundsteuerung, was das Thema sein soll. Das Licht sieht aus wie. Nur um Ihnen zu zeigen, was Sie sehen, erhalten Sie Ergebnisse.Einige Leute sehen, werden andere verstehen, andere sehen, dass sie es auch nicht wissen, ich werde ein paar erklärende Worte hinzufügen:
2. Probe
3. Spezifische Beschreibung
1.Das
tools: context = "activity name"
wird nicht in das verpacktapk
(Verständnis: das Äquivalent dazu wird kommentiert, das kompiliert keine Wirkung.)2.Nur der
ADT
Layout-Editor (dh für das obige Symbol auf der rechten Seite des Simulators) in der aktuellen Layout-Datei den entsprechenden Rendering-Kontext festlegen. Das Layout des aktuellen XML beim Rendern des Kontexts ist der Aktivitätsname, der der Aktivität entspricht, wennADT
Wenn die Aktivität in der Manifestdatei ein Thema festlegt, rendert der Layout-Editor Ihr aktuelles Layout gemäß demMainActivity
Thema. Bedeutet dies, wenn Sie ein Thema festlegen. Das Licht kann auch (anderes) sein. (Verstehen Sie: Sie haben hinzugefügttools: context = "activity name"
, das XML-Layout rendert eine bestimmte Aktivität, erstellt ein Thema in der Manifestdatei. Der oben rechts abgebildete Simulator-Themenstil folgt auch Änderungen, die dem Thema entsprechen.)4.Zusammenfassung
Zusammenfassend lässt sich sagen, dass diese Eigenschaften hauptsächlich auf die richtigen Tools abzielen, dass der Status der Debugging-Zeit des Simulators angezeigt wird und das Kompilieren nicht funktioniert.
quelle
"Tools: context" ist eines der Designattribute, die die Layouterstellung in XML im Entwicklungsframework erleichtern können. Dieses Attribut wird verwendet, um dem Entwicklungsframework anzuzeigen, welche Aktivitätsklasse für die Implementierung des Layouts ausgewählt wurde. Mit „tools: context“ wählt Android Studio automatisch das erforderliche Thema für die Vorschau aus.
Wenn Sie mehr über einige andere Attribute und nützliche Tools für die Entwicklung von Android-Apps erfahren möchten, lesen Sie diese Rezension: http://cases.azoft.com/4-must-know-tools-for-effective-android -Entwicklung/
quelle
Dies ist die beste Lösung: https://developer.android.com/studio/write/tool-attributes
Dies sind Designattribute, mit denen wir den Aktivitätskontext in XML wie einstellen können
Adapter:
Sie können zur Java-Klasse navigieren, wenn Sie auf das markierte Symbol klicken. Werkzeuge verfügen über weitere Funktionen wie
etx
quelle
tools:context=".MainActivity"
Diese Zeile wird in einer XML-Datei verwendet, die angibt, welche Java-Quelldatei für den Zugriff auf diese XML-Datei verwendet wird. Dies bedeutet, dass diese XML-Vorschau für bestimmte Java-Dateien angezeigt wird.quelle