Począwszy od najnowszej nowej wersji narzędzia ADT zauważyłem ten nowy atrybut w plikach XML układu, na przykład:
<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" />
Do czego służy „narzędzia: kontekst”?
Skąd w ogóle zna dokładną ścieżkę do zapisanej tam czynności? Czy wygląda na pakiet aplikacji w manifeście?
Czy ogranicza się to do zajęć, które rozszerzają kontekst lub tylko zajęcia? Czy nadaje się do elementów ListView itp.?
android
xml
android-layout
android-context
android-tools-namespace
programista Androida
źródło
źródło
Odpowiedzi:
Jest to działanie, którego używa edytor interfejsu użytkownika narzędzi do renderowania podglądu układu. Jest to udokumentowane tutaj :
źródło
Activity
rozszerza sięContext
, więc nie jesteś pewien, co masz na myśli? Rzeczywiście może robić więcej, jeśli jesteś zainteresowany, sprawdź kod źródłowy, jest dostępny. Nie znam żadnych szczegółów.Ten atrybut jest zasadniczo trwałością wyboru „Powiązanej aktywności” nad układem. W czasie wykonywania układ jest zawsze powiązany z działaniem. Można go oczywiście powiązać z więcej niż jednym, ale co najmniej jednym. W narzędziu musimy wiedzieć o tym odwzorowaniu (które w czasie wykonywania dzieje się w innym kierunku; działanie może wywołać setContentView (układ) w celu wyświetlenia układu) w celu sterowania niektórymi funkcjami.
W tej chwili używamy go tylko do jednej rzeczy: wybranie odpowiedniego motywu do wyświetlenia dla układu (ponieważ plik manifestu może zarejestrować motywy do użycia dla działania , a gdy poznamy aktywność związaną z układem, możemy wybrać odpowiedni motyw do wyświetlenia dla układu). W przyszłości wykorzystamy to do obsługi dodatkowych funkcji - takich jak renderowanie paska akcji (który jest powiązany z działaniem), miejsce do dodawania programów obsługi onClick itp.
Powodem tego jest atrybut narzędzi: przestrzeń nazw, ponieważ jest to tylko mapowanie designtime do użycia przez narzędzie. Sam układ może być używany przez wiele działań / fragmentów itp. Chcemy tylko dać ci możliwość wyboru powiązania designtime, abyśmy mogli na przykład pokazać odpowiedni motyw; możesz to zmienić w dowolnym momencie, tak jak możesz zmienić nasz widok listy i powiązania fragmentów itp.
(Oto pełny zestaw zmian, który zawiera więcej szczegółów na ten temat )
I tak, powyższy link Nikolay pokazuje, jak wygląda i działa nowy selektor konfiguracji
Jeszcze jedno: przestrzeń nazw „narzędzi” jest wyjątkowa. Android narzędzie do pakowania wie, jak go zignorować, więc żaden z tych atrybutów nie zostanie spakowany w pliku APK. Używamy go do dodatkowych metadanych w układzie. W tym miejscu przechowywane są na przykład atrybuty tłumiące ostrzeżenia o kłaczkach - jako narzędzia: ignoruj.
źródło
tools:context
wartość wTextView
polu. Ponieważ brzmi to jak globalny przypadek użycia do zastosowania motywu do całego układu, dlaczego nie jest on umieszczony w układzie głównym?Według strony projektu Android Tools :
narzędzia: kontekst
Ten atrybut jest zwykle ustawiany na elemencie głównym w pliku XML układu i rejestruje, z jaką aktywnością jest powiązany układ (w designtime, ponieważ oczywiście układ może być używany przez więcej niż jeden układ). Będzie to na przykład wykorzystane przez edytor układu do odgadnięcia domyślnego motywu, ponieważ motywy są zdefiniowane w Manifeście i są powiązane z działaniami, a nie układami. Możesz użyć tego samego prefiksu kropki, co w manifestach, aby po prostu określić klasę aktywności bez pełnej nazwy pakietu aplikacji jako prefiksu.
Używany przez: Redaktory układu w Studio i Eclipse, Lint
źródło
1. opis
tools: context = "activity name"
nie zostanie on spakowany doapk
.OnlyADT
Layout Editor w bieżącym zestawie plików Layout odpowiadającym kontekście renderowania, pokaż swój obecny Layout w renderowaniu kontekstu, jeśli nazwa działania odpowiada działaniu, jeśli działanie w zestawiemanifest
zestawu Theme, toADT
Edytor układu wyrenderuje twój bieżący układ zgodnie z kompozycją. Oznacza to, że jeśli ustawiszMainActivity
zestaw kompozycję . Światło (drugie), a następnie zobaczysz w wizualnym menedżerze układu o kontrolę tła tego, co powinno być motywem. Światło wygląda tak, aby pokazać Ci tylko to, co widzisz.Niektórzy widzą, że niektórzy to rozumieją, inni też nie rozumieją, dodam kilka słów wyjaśnienia:
2.Próbka
3. Szczegółowy opis
1.
tools: context = "activity name"
Nie zostanie spakowany doapk
(zrozumienie: odpowiednik tego jest skomentowany, skompilowany brak efektu).2.Tylko
ADT
edytor układu (tj. Dla powyższej ikony po prawej stronie symulatora) w bieżącym pliku układu ustawia odpowiedni kontekst renderowania, układ bieżącego XML w renderowaniu kontekstu to nazwa działania odpowiadająca działaniu, jeśli aktywność w pliku manifestu ustawia motyw, a następnieADT
Edytor układu wyrenderuje bieżący układ zgodnie z motywem. Oznacza to, że jeśli ustawiszMainActivity
zestaw temat. Światło może być również (inne). (Zrozum: dodałeśtools: context = "activity name"
, układ XML renderuje określoną aktywność, ustanawia kompozycję w pliku manifestu, na zdjęciu powyżej prawego symulatora Styl kompozycji będzie również podążał za zmianami odpowiadającymi kompozycji).4. podsumowanie
Podsumowując, te właściwości mają na celu przede wszystkim nad odpowiednimi narzędziami, stan wyświetlania czasu debugowania symulatora i kompilacja nie działa,
źródło
„Narzędzia: kontekst” to jeden z atrybutów projektowych, który może ułatwić tworzenie układu w języku XML w środowisku programistycznym. Ten atrybut służy do pokazania środowisku programistycznemu, jaką klasę aktywności wybiera się do implementacji układu. Korzystając z „narzędzi: kontekst”, Android Studio automatycznie wybiera niezbędny motyw do podglądu.
Jeśli chcesz dowiedzieć się więcej o niektórych innych atrybutach i przydatnych narzędziach do tworzenia aplikacji na Androida, zapoznaj się z tą recenzją: http://cases.azoft.com/4-must-know-tools-for-effective-android -rozwój/
źródło
To najlepsze rozwiązanie: https://developer.android.com/studio/write/tool-attributes
To atrybuty projektu, które możemy ustawić kontekst aktywacji w formacie XML
Adapter:
Możesz przejść do klasy java, klikając zaznaczoną ikonę, a narzędzia mają więcej funkcji, takich jak
etx
źródło
tools:context=".MainActivity"
ta linia jest używana w pliku xml, który wskazuje, który plik źródłowy Java jest używany do uzyskania dostępu do tego pliku xml. oznacza to pokazanie tego podglądu xml dla perticular plików Java.źródło