【问题标题】:No divider in suggestion list of SearchViewSearchView 的建议列表中没有分隔符
【发布时间】:2015-07-09 04:57:59
【问题描述】:

我按照谷歌的例子来讨论custom suggestion。我的项目很简单:

  1. 一个ContentProvider.class
  2. 一个SqlOpenHelper.class
  3. 一个MainActivity.class
  4. 一个 menu 和一个 layout,没有创建其他 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 在菜单/工具栏中。

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

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

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

【问题讨论】:

  • 您是否使用列表视图来显示数据以及您使用的是哪个版本的android
  • 我在 Android 5.1.1 上测试过。
  • 您是否禁用了单个列表项的点击
  • 那在哪里?我不知道在哪里禁用它。我只有一个searchable 和一个contentprovider
  • 你在 xml 中改变了分隔线的高度

标签: java android listview searchview


【解决方案1】:

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

【讨论】:

  • 我没有接触任何东西,也没有创建“ListView”或“ListAdapter”。我只创建了一个内容提供者类和sqlOpenHelper。我也在 Android 4.3 上测试过,但结果还是一样。我错过了行布局吗?
猜你喜欢
  • 2016-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
  • 2023-03-28
  • 2021-05-30
  • 2020-12-26
相关资源
最近更新 更多