java - SearchView 的建议列表中没有分隔符

标签 java android listview searchview

我按照 Google 关于 custom suggestion 的例子。我的项目非常简单:

  1. 一个ContentProvider.class
  2. 一个SqlOpenHelper.class
  3. 一个MainActivity.class
  4. 一个菜单和一个布局,不创建其他 XML 布局/drawable。

我在 AppCompatActivity (AppCompat.v7) 的 Toolbar 中有一个 SearchView (support.v7),并使用 Android 5.1.1 和 Android 4.3 进行了测试。

菜单中的SearchView很简单:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
    android:id="@+id/action_search"
    android:icon="@android:drawable/ic_menu_search"
    app:showAsAction="always"
    app:actionViewClass="android.support.v7.widget.SearchView"
    android:title="Search"/>
  </menu>

它能够从简单的CustomContentProvider获取建议。但是,建议列表中没有分隔线(见图)。之前我也在另一个应用程序的正常布局中创建了类似的搜索功能。它工作正常,但这次 SearchView 位于菜单/工具栏中。

enter image description here

我可以使用以下代码更改建议列表的背景:

private void initSearchView(MenuItem searchItem) {
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchableInfo searchableInfo = searchManager.getSearchableInfo(getComponentName());
    SearchView searchView = (SearchView) searchItem.getActionView();

    SearchView.SearchAutoComplete autoCompleteTextView = (SearchView.SearchAutoComplete) searchView.findViewById(R.id.search_src_text);

    /**
     * Todo: Change row style of suggestion List
     */
    if (autoCompleteTextView != null) { 
    autoCompleteTextView.setDropDownBackgroundDrawable(ContextCompat.getDrawable(this, R.drawable.search_suggestion_row));
    }
    searchView.setSearchableInfo(searchableInfo);
}

我尝试过更改 Activity 的主题,但没有成功,我认为我不应该再次创建行布局和 ListAdapter

用于更改行样式或显示分隔线的任何解决方案。感谢您的帮助!

最佳答案

分隔线没有出现,因为它是 Lollipop 中的一个错误,如果您覆盖 **isEnabled()** 方法,就会发生这种情况,请参阅此处,您可以了解更多信息。 https://code.google.com/p/android/issues/detail?id=83055

关于java - SearchView 的建议列表中没有分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31308471/

相关文章:

java - WebService 客户端失败 : Tomcat, CXF

android - 如何将字符串解析为值:“”字段

c# - 里面的按钮是 listView 在 UWP 的 View 中不显示

Android Listview 异步图像加载

android - 如何更改 android 中的 whiteBalance 增益值?

c# - ListView 中的文本框

java - 在JAVA中如何跳转到XML中的特定节点?

java - 在 Linux 2 中用 java 编译 Cplex

java - 在 log4j 中为记录器设置不同级别的日志记录

android - 如何更改异常消息, "The application ... has stopped unexpectedly. Please try again later.”