Dokumentacja atrybutów narzędzi

Android Studio obsługuje różne atrybuty XML w przestrzeni nazw tools które umożliwiają funkcje w czasie projektowania, np. wybór układu do wyświetlenia we fragmencie, zachowania podczas kompilowania, np. wybrać tryb zmniejszania, który ma zostać zastosowany do pliku XML. i zasobami Google Cloud. Podczas tworzenia aplikacji narzędzia do kompilacji usuwają te atrybuty, że nie ma to wpływu na rozmiar pliku APK ani na jego działanie w czasie działania.

Aby używać tych atrybutów, dodaj przestrzeń nazw tools do głównego elementu każdego z nich XML, w którym chcesz ich użyć, tak jak tutaj:

<RootTag xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" >

Atrybuty obsługi błędów

Te atrybuty pomagają pomijać komunikaty ostrzegawcze dotyczące lint:

tools:ignore

Przeznaczenie: dowolny element

Używane przez: Lint

Ten atrybut akceptuje rozdzieloną przecinkami listę identyfikatorów problemów lintowych, które chcesz narzędzia, które mają być ignorowane w tym elemencie lub jego elementach podrzędnych.

Możesz na przykład wskazać, aby narzędzia ignorowały błąd MissingTranslation:

<string name="show_all_apps" tools:ignore="MissingTranslation">All</string>

tools:targetApi

Przeznaczenie: dowolny element

Używane przez: Lint

Ten atrybut działa tak samo jak Adnotacja @TargetApi w Javie w kodzie. Umożliwia określenie poziomu interfejsu API (w postaci liczby całkowitej lub nazwy kodowej). który obsługuje ten element.

Informuje to narzędzia, że Twoim zdaniem ten element oraz wszystkie jego elementy podrzędne są używane tylko na określonym poziomie interfejsu API lub wyższym. Spowoduje to przerwanie lintowania przed ostrzeżeniem. jeśli dany element lub jego atrybuty nie są dostępne na określonym przez Ciebie poziomie interfejsu API. minSdkVersion.

Możesz na przykład użyć tego atrybutu, Opcja GridLayout jest dostępna tylko na tych platformach: Interfejs API na poziomie 14 lub wyższym, ale wiesz, że ten układ nie jest używany w Twoim kodzie dla starszych wersji:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:targetApi="14" >

(Zalecamy jednak używanie interfejsu GridLayout z biblioteki pomocy).

tools:locale

Przeznaczenie: <resources>

Używane przez: Lint, edytor Android Studio

Informuje on narzędzia, jaki jest domyślny język lub język zasobów w danego elementu <resources>, aby uniknąć ostrzeżeń modułu sprawdzania pisowni. W przeciwnym razie narzędzie przyjmuje, że język jest angielski.

Wartość musi być prawidłowym językiem kwalifikator.

Możesz na przykład dodać tę informację do domyślnego pliku values/strings.xml do wskazują, że domyślnym językiem ciągów tekstowych jest hiszpański zamiast angielski:

<resources xmlns:tools="http://schemas.android.com/tools"
    tools:locale="es">

Atrybuty widoku czasu projektowania

Te atrybuty określają cechy układu, które są widoczne tylko w podglądzie układu w Android Studio.

tools: zamiast android:

Przeznaczenie: <View>

Używane przez: edytor układu Android Studio

Możesz wstawić przykładowe dane w podglądzie układu, używając prefiksu tools: zamiast android: z dowolnym atrybutem <View> ze platformy Androida. Jest to przydatne, gdy wartość atrybutu nie jest wypełniana do czasu działania i gdy aby zobaczyć efekt w podglądzie układu.

Jeśli na przykład wartość atrybutu android:text jest ustawiona w czasie działania lub chcesz aby zobaczyć układ z wartością inną niż domyślny, możesz dodać tools:text, by określić tekst tylko na potrzeby podglądu układu.

Atrybut Tools:text ustawia Google Voice jako wartość układu.
      wersja testowa
Rysunek 1. tools:text ustawia „Google Voice” jako wartość dla podglądu układu.

Możesz dodać zarówno atrybut przestrzeni nazw android:, który jest używany w środowiska wykonawczego oraz pasujący atrybut tools:, który zastępuje środowisko wykonawcze tylko w podglądzie układu.

Możesz również użyć atrybutu tools:, aby cofnąć ustawienie atrybutu dla: tylko podgląd układu. Jeśli na przykład masz konto FrameLayout z dwójką dzieci, ale chcesz wyświetlić tylko jeden element podrzędny w podglądzie układu, możesz ustawić aby były niewidoczne w podglądzie układu, jak widać tutaj:

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="First" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Second"
    tools:visibility="invisible"  />

Jeśli korzystasz z Edytora układów w w widoku projektu, okno Właściwości umożliwia edycję czasu projektowania, atrybutów widoku danych. Każdy atrybut „design-time” jest oznaczony za pomocą atrybutu ikonę klucza Klucz
ikona obok nazwa atrybutu, aby odróżnić go od rzeczywistego atrybutu o tej samej nazwie.

tools:context

Przeznaczenie: dowolny poziom główny <View>

Używane przez: Lint, Android Studio Layout Edytujący

Ten atrybut określa aktywność, z którą jest powiązany ten układ wartość domyślną. Włącza to funkcje w edytorze lub podglądzie układu, które wymagają Wiedza o aktywności, np. o motywie układu podglądu i miejsca wstawiania modułów obsługi onClick wygenerowanych na podstawie jak na ilustracji 2.

Szybka poprawka
    dla atrybutu onClick działa tylko wtedy, gdy jest ustawiona wartość Tools:context
Rysunek 2. Szybka poprawka dla onClick działa tylko wtedy, gdy ustawisz tools:context.

Możesz podać nazwę klasy aktywności, używając tego samego prefiksu kropki co w plik manifestu (bez pełnej nazwy pakietu).

Na przykład:

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity" >

tools:itemCount

Przeznaczenie: <RecyclerView>

Używane przez: Android Studio Layout Edytujący

Ten atrybut określa liczbę elementów w atrybucie RecyclerView Edytor układów powinien renderować się w Okno Podgląd.

Na przykład:

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:itemCount="3"/>

tools:layout

Przeznaczenie: <fragment>

Używane przez: edytor układu w Android Studio

Ten atrybut określa układ, w którym ma znaleźć się podgląd układu. ten fragment, bo podgląd układu nie może wykonać elementu kodu aktywności, który normalnie stosuje ten układ.

Na przykład:

<fragment android:name="com.example.main.ItemListFragment"
    tools:layout="@layout/list_content" />

tools:listitem, tools:listheader, tools:listfooter

Przeznaczone dla: <AdapterView> (i podklas, takich jak <ListView>)

Używane przez: edytor układu w Android Studio

Te atrybuty określają, który układ będzie wyświetlany na podglądzie układu listy elementy, nagłówek i stopkę. Wszystkie pola danych w układzie są wypełnione wartościami wartości liczbowe, np. „Element 1”, aby elementy listy nie powtarzały się.

Na przykład:

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:listitem="@layout/sample_list_item"
    tools:listheader="@layout/sample_list_header"
    tools:listfooter="@layout/sample_list_footer" />

tools:showIn

Przeznaczenie: dowolny główny element <View> w układzie, który jest wskazywany przez tag <include>

Używane przez: edytor układu w Android Studio

Ten atrybut pozwala wskazać układ, który go używa, za pomocą <include>, dzięki czemu możesz wyświetlić podgląd tego pliku i edytować go w takiej formie, w jakiej jest umieszczony w układzie nadrzędnym.

Na przykład:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:text="@string/hello_world"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:showIn="@layout/activity_main" />

Teraz na podglądzie układu widać ten układ TextView w takiej postaci, w jakiej jest widoczny w panelu Układ activity_main.

tools:menu

Przeznaczenie: dowolny poziom główny <View>

Używane przez: edytor układu w Android Studio

Ten atrybut określa menu, które będzie wyświetlane w podglądzie układu w pasek aplikacji. Wartością jest co najmniej jeden identyfikator menu, rozdzielone przecinkami, bez @menu/ ani takiego prefiksu identyfikatora i bez rozszerzenie .xml.

Na przykład:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:menu="menu1,menu2" />

tools:minValue, tools:maxValue

Przeznaczenie: <NumberPicker>

Używane przez: edytor układu w Android Studio

Te atrybuty ustawiają minimalne i maksymalne wartości dla NumberPicker widok.

Na przykład:

<NumberPicker xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/numberPicker"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:minValue="0"
    tools:maxValue="10" />

tools:openDrawer

Przeznaczenie: <DrawerLayout>

Używane przez: edytor układu w Android Studio

Ten atrybut umożliwia otwarcie DrawerLayout w podglądzie.

Możesz też zmodyfikować sposób renderowania układu przez przekazując jedną z tych wartości:

Tabela 1. Wartości modyfikujące sposób działania Edytor układu renderuje DrawerLayout

StałaWartośćOpis
end800005Wypchnij obiekt na koniec kontenera, nie zmieniając jego rozmiaru.
left3Wypchnij obiekt na lewo od kontenera bez zmiany jego rozmiaru.
right5Wypchnij obiekt na prawo od kontenera, nie zmieniając jego rozmiaru.
start800003Wypchnij obiekt na początek kontenera, nie zmieniając jego rozmiaru.

Na przykład:

<androidx.drawerlayout.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:openDrawer="start" />

"@tools:sample/*" zasobu

Przeznaczenie: każdy widok, który obsługuje tekst lub obrazy interfejsu

Używane przez: Android Studio Layout Edytujący

Ten atrybut umożliwia wstrzykiwanie do widoku danych zastępczych lub obrazów. Aby na przykład sprawdzić, jak układ zachowuje się po tekście Gdy masz gotowy tekst interfejsu aplikacji, możesz użyć następujące:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="@tools:sample/lorem" />

W tabeli poniżej opisujemy typy danych zastępczych, których możesz użyć wstrzyknięcie kodu do układów:

Tabela 2. Dane zastępcze dla: układy

Wartość atrybutuOpis danych zastępczych
@tools:sample/full_names Pełne imiona i nazwiska generowane losowo na podstawie kombinacji @tools:sample/first_names i @tools:sample/last_names
@tools:sample/first_names Typowe imiona
@tools:sample/last_names Typowe nazwiska
@tools:sample/cities Nazwy miast na całym świecie
@tools:sample/us_zipcodes Losowo generowane kody pocztowe w USA
@tools:sample/us_phones Losowo generowane numery telefonów w tym formacie: (800) 555-xxxx
@tools:sample/lorem Tekst zastępczy w alfabecie łacińskim
@tools:sample/date/day_of_week Losowe daty i godziny w określonym formacie
@tools:sample/date/ddmmyy
@tools:sample/date/mmddyy
@tools:sample/date/hhmm
@tools:sample/date/hhmmss
@tools:sample/avatars Wektorowe obiekty rysunkowe, których można użyć jako awatarów profilu
@tools:sample/backgrounds/scenic Obrazy, których możesz użyć jako tła

Atrybuty zmniejszające zasoby

Te atrybuty pozwalają włączyć rygorystyczne sprawdzanie odwołań i zadeklarować czy warto zachować, czy odrzucić określone zasoby zmniejszanie zasobów.

Aby włączyć zmniejszanie zasobów, ustaw właściwość shrinkResources na true w pliku build.gradle razem z dyrektywą minifyEnabled, by zmniejszyć kod.

Na przykład:

Odlotowe

android {
    ...
    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
    }
}

Kotlin

android {
    ...
    buildTypes {
        getByName("release") {
            isShrinkResources = true
            isMinifyEnabled = true
            proguardFiles(
                getDefaultProguardFile("proguard-android.txt"),
                "proguard-rules.pro"
            )
        }
    }
}

tools:shrinkMode

Przeznaczenie: <resources>

Używane przez: narzędzia do tworzenia kampanii z ograniczaniem zasobów

Ten atrybut pozwala określić, czy narzędzia do kompilacji mają używać atrybutu :

  • Tryb awaryjny: zachowaj wszystkie zasoby, które są cytowane i do których może się odwoływać dynamicznie za pomocą wywołania funkcji Resources.getIdentifier()
  • Tryb ścisły: pozostawiasz tylko zasoby. są wyraźnie cytowane w kodzie lub innych zasobach.

Domyślnie używany jest tryb awaryjny (shrinkMode="safe"). Aby zamiast tego użyć w trybie ścisłym, dodaj shrinkMode="strict" do tagu <resources> w taki sposób:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:shrinkMode="strict" />

Po włączeniu trybu ścisłego może być konieczne użycie funkcji tools:keep aby zachować usunięte zasoby, których rzeczywiście potrzebujesz, tools:discard, aby usunąć jeszcze więcej zasobów.

Więcej informacji: Zmniejszanie zasobów.

tools:keep

Przeznaczenie: <resources>

Używane przez: narzędzia do tworzenia kampanii z ograniczaniem zasobów

Gdy używasz zmniejszania zasobów do usuwania nieużywanych zasobów, pozwala określić zasoby do zachowania, zwykle dlatego, że są w sposób pośredni, np. przez dynamiczne przekazywanie wygenerowana nazwa zasobu do Resources.getIdentifier()

Aby go użyć, utwórz plik XML w katalogu zasobów (na przykład res/raw/keep.xml) z tagiem <resources> i określ każdy zasób do zachowania w atrybucie tools:keep jako rozdzielane przecinkami. Możesz jej użyć jako symbolu wieloznacznego.

Na przykład:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:keep="@layout/used_1,@layout/used_2,@layout/*_3" />

Więcej informacji: Zmniejszanie zasobów.

tools:discard

Przeznaczenie: <resources>

Używane przez: narzędzia do tworzenia kampanii z ograniczaniem zasobów

Podczas zmniejszania zasobów w celu usunięcia nieużywanych zasobów ten atrybut pozwala określić zasoby, które chcesz ręcznie odrzucić, zwykle dlatego, że do zasobu się odwołuje, ale w sposób, który nie ma wpływu na aplikację lub bo wtyczka do Gradle błędnie wydedukowała, że zasób jest wymienionych.

Aby go użyć, utwórz plik XML w katalogu zasobów (na przykład res/raw/keep.xml) z tagiem <resources> i określ każdy zasób do odrzucenia w atrybucie tools:discard jako rozdzielane przecinkami. Możesz jej użyć jako symbolu wieloznacznego.

Na przykład:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:discard="@layout/unused_1" />

Więcej informacji: Zmniejszanie zasobów.