2016-07-21 17 views
8

XML pracuje dobrze z:Co to jest właściwość XML xmlns: aplikacja?

xmlns:app="http://schemas.android.com/apk/res-auto" 

ale nie widzi max znaków z

xmlns:app="http://schemas.android.com/tools" 

który jest wypełniony przez Android Studio auto.

Tu jest mój XML:

<com.rengwuxian.materialedittext.MaterialEditText 
    android:id="@+id/remark_text" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="15dp" 
    android:layout_marginRight="15dp" 
    app:met_maxCharacters="20" 
    app:met_baseColor="@color/black" 
    app:met_primaryColor="@color/white" /> 

Odpowiedz

7

xmlns oznacza 'nazw XML'

  • elementu po ':' jest prefiks dla przestrzeni nazw
  • Część po '=' jest identyfikatorem URI przestrzeni nazw (poprawna nazwa jego części to w rzeczywistości "nazwa przestrzeni nazw").

(dalsze szczegóły patrz https://en.wikipedia.org/wiki/XML_namespace)

do „schemas.android.com/tools” nazw jest do określania opcji zbudować aplikację Android Studio, a nie zostały uwzględnione w ostatecznej aplikacji pakietu

Przestrzeń nazw "schemas.android.com/apk/res-auto" jest używana dla wszystkich atrybutów niestandardowych - zdefiniowanych w bibliotekach lub w kodzie. Aby uzyskać szczegółowe informacje, patrz this answer.

Zauważ, że każdy prefiks może być używany dla przestrzeni nazw, nie jest obowiązkowe używanie "aplikacji" dla schemas.android.com/apk/res-auto. Jednak podczas definiowania niestandardowych atrybutów w dokumencie należy użyć tego samego prefiksu, w przeciwnym razie zostanie wyświetlony błąd.

Tak, ponieważ met_maxCharacters jest atrybut niestandardowy, to pojawia się, gdy używana jest przestrzeń nazw „schemas.android.com/apk/res-auto”, a nie z
„schemas.android.com/tools”

+0

Bardzo przydatna odpowiedź! Dlaczego Android Studio używa/narzędzi zamiast apk/res-auto? –

+2

Dwa (/ tools i/apk/res-auto) służą do różnych celów:/tools jest dla opcji używanych do budowania aplikacji i nie są częścią samej aplikacji i są usuwane w apk./apk/res-auto jest dla atrybutów niestandardowych, które są używane w aplikacji –

+0

Bardzo przydatna odpowiedź wyjaśniona w najprostszy sposób/języku –