Android SDK 22-SearchView渲染问题
我们刚刚将本地Android SDK更新为新的,我们也在尝试更新我们的应用程序,但在Android Studio的布局设计视图中呈现似乎有问题:每次设计器尝试呈现SearchView元素时,都会引发异常: 位于的java.lang.NullPointerException android.content.res.TypedArray.hasValueOrEmpty(TypedArray.java:845) 位于android.widget.SearchView.(SearchView.java:295) SearchView.(SearchView.java:258)位于 SearchView.(SearchView.java:254)位于 newInstance(Constructor.java:422)位于 createView(LayoutInflater.java:607)位于 onCreateView(LayoutInflater.java:682)位于 createViewFromTag(LayoutInflater.java:741) 在 android.view.LayoutInflater.rInflate_原件(LayoutInflater.java:806) 在 rayoutinflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) 位于android.view.LayoutInflater.rInflate(LayoutInflater.java:782) 在android.view.LayoutInflater.inflate(LayoutInflater.java:504)中 膨胀(LayoutInflater.java:385) 即使我们在新的布局文件中从左工具栏创建新元素,也会发生这种情况。 有什么想法吗Android SDK 22-SearchView渲染问题,android,android-layout,android-studio,searchview,Android,Android Layout,Android Studio,Searchview,我们刚刚将本地Android SDK更新为新的,我们也在尝试更新我们的应用程序,但在Android Studio的布局设计视图中呈现似乎有问题:每次设计器尝试呈现SearchView元素时,都会引发异常: 位于的java.lang.NullPointerException android.content.res.TypedArray.hasValueOrEmpty(TypedArray.java:845) 位于android.widget.SearchView.(SearchView.java:
<?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>
在中找到此项。在评估中失败的是a
的解引用
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);
}
尝试设置样式属性?我对Davide的评论投了赞成票。错误意味着searchIcon不能为空(为什么?) 这可以使用api 22在Studio中编译,但会强制您选择一个图标。这个例子是android上的两个默认设置之一(没有一个比searchview默认设置更酷),你可以随时定制一个 这里是片段
<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" />
编辑
根据清单将设计器预览中的android版本更改为当前版本。呈现问题导致设计器预览使用的API级别高于当前android API级别
应该行得通 只需将android xml布局中的api 22更改为21即可
尝试将API级别更改为更高的级别渲染错误不会出现
它将解决渲染问题这是什么意思?我们尝试将
android:searchHintIcon=“@drawable/ic_-icon”android:searchIcon=“@drawable/ic_-icon”
添加到SearchView中,但没有得到任何好结果:-(我们还尝试在SearchView元素中添加一个style属性,在styles.xml中添加相对的android:searchHintIcon/android:searchIcon
。即使您的代码片段在布局设计中似乎不起作用,我们也会遇到同样的渲染错误。即使这看起来更像是一种黑客行为而不是解决方案,它也会起作用。谢谢!:-)