android android-layout android-studio searchview

Android SDK 22-Problemas de representación de SearchView



android-layout android-studio (4)

Editar

Cambiar su versión de Android en la vista previa de su diseñador a su versión actual depende de su Manifiesto. el problema de renderizado provocó que su vista previa de diseñador utilizara un nivel de API más alto que su nivel de API de Android actual

Deberia de funcionar

Simplemente cambie la API 22 a 21 en el diseño xml de Android

Acabamos de actualizar el SDK de Android local a la nueva versión 22 , y estamos tratando de actualizar también nuestras aplicaciones, pero parece ser un problema con la representación de SearchView en la vista de diseño de diseño de Android Studio : cada vez que el diseñador intenta representar un elemento de SearchView , arroja una excepción:

java.lang.NullPointerException en android.content.res.TypedArray.hasValueOrEmpty (TypedArray.java:845) en android.widget.SearchView. (SearchView.java:295) en android.widget.SearchView. (SearchView.java:258) en android.widget.SearchView. (SearchView.java:254) en java.lang.reflect.Constructor.newInstance (Constructor.java:422) en android.view.LayoutInflater.createView (LayoutInflater.java:607) en android.view .LayoutInflater.onCreateView (LayoutInflater.java:682) en android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:741) en android.view.LayoutInflater.rInflate_Original (LayoutInflater.java:806) en android.view.aylate.InDelate. LayoutInflater_Delegate.java:64) en android.view.LayoutInflater.rInflate (LayoutInflater.java:782) en android.view.LayoutInflater.inflate (LayoutInflater.java:504) en android.view.LayoutInflater.inflate (LayoutInflater.java:385 )

Esto ocurre incluso si creamos un nuevo elemento desde la barra de herramientas izquierda en un nuevo archivo de diseño. ¿Alguna idea?

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <SearchView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/searchView" /> </LinearLayout>


Encontré esto en la source . Es la desreferencia de a que falla en la evaluación.

final TypedArray a = context.obtainStyledAttributes( attrs, R.styleable.SearchView, defStyleAttr, defStyleRes); [...] // Prior to L MR1, the search hint icon defaulted to searchIcon. If the // style does not have an explicit value set, fall back to that. if (a.hasValueOrEmpty(R.styleable.SearchView_searchHintIcon)) { mSearchHintIcon = a.getDrawable(R.styleable.SearchView_searchHintIcon); } else { mSearchHintIcon = a.getDrawable(R.styleable.SearchView_searchIcon); }

Intenta establecer los atributos de estilo?


He votado los comentarios de Davide. Error significa que searchIcon no puede ser nulo (¿por qué?).

Esto funciona para compilar en Studio con la API 22, pero te obliga a seleccionar un icono. El ejemplo es uno de los 2 valores predeterminados en Android (ninguno tan bueno como el predeterminado de la vista de búsqueda), siempre puede tener su personalizado ...

Aquí el fragmento.

<SearchView android:id="@+id/searchBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:searchIcon="@android:drawable/ic_search_category_default" tools:ignore="UnusedAttribute" />


Intente cambiar el nivel de API a un error de renderizado superior no estará allí.

Resolverá problemas de renderizado