In meiner App verwende ich Vektorzeichenstile , die in support library 23.2 für Vektorsymbole hinzugefügt wurden, und es funktioniert perfekt, aber wenn ich den Vektor auf drawableLeft von EditText setze, tut es das nicht in Pre-Lollipop Android-Versionen arbeiten. Zur Laufzeit tritt ResourceNotFound-Ausnahme auf.
%Vor%Dies ist meine Konfiguration:
%Vor%EditText:
%Vor%Aktualisieren
Seit Android Support Library, Revision 23.4.0
AppCompatDelegate.setCompatVectorFromResourcesEnabled () -Methode hinzugefügt, um die Verwendung von Vektor-Draw-Objekten in DrawableContainer-Objekten auf Geräten mit Android 4.4 (API-Stufe 19) und niedriger wieder zu aktivieren. Siehe AppCompat v23.2 - Alter der Vektoren für mehr Informationen.
Sie sollten static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
am Anfang Ihrer Aktivität hinzufügen.
Sie verwenden AppCompat 23.3. Von Android-Entwicklern
Für AppCompat-Nutzer haben wir entschieden, die Funktionalität zu entfernen, mit der Sie Vektor-Drawables aus Ressourcen auf Pre-Lollipop-Geräten verwenden können, aufgrund von Problemen in der Implementierung in Version 23.2.0 / 23.2.1. Mit app: srcCompat und setImageResource () funktioniert weiter.
Sie können Vector EditText programmatisch hinzufügen. Verwenden Sie VectorDrawableCompat , um drawableLeft / drawableRight / drawableTop / drawableBottom / drawableStart / drawableEnd hinzuzufügen.
Schritte:
ich. Entfernen Sie android:drawableLeft="@drawable/layer_list_ic_user"
ii. Wenn EditText in Activity:
ist %Vor%iii. Wenn EditText in Fragment ist:
%Vor%Weitere Informationen zu VectorDrawableCompat Rufen Sie diesen Link
aufIch stehe vor diesem Problem und löse es, indem ich das Vektorbild innerhalb der Layer-Liste ziehe: search_grey.xml
%Vor%und in EditText:
%Vor%