搜索视图onQueryTextChange问​​题

时间:2018-09-17 05:00:26

标签: android searchview

我实现了搜索视图,该视图从回收者视图中进行搜索并相应地更新回收者。当它与任何项目都不匹配时,我将显示另一个布局“无记录”,并将回收站视图的可见性设置为 GONE 。假设回收站视图包含标题为“法官” 的项目,当我输入前两个字母“ ju” 时,它将更新回收站视图,并在顶部显示法官。

现在的问题是:

  1. 当我键入“ juz” 时,它应该显示 NoRecord ,但显示空白的白屏。
  2. 当我键入“ juzm” 时,它会显示 NoRecord 并隐藏正常工作的回收站视图,但是当我将搜索文本退格到“ juz” 时>显示 NoRecord ,再次退格“ ju” ,再次显示 NoRecord ,再次退格“ j” 项目

搜索视图方法

let { {/* Other props */}, navigation } = props

...
onPress={()=> navigation.navigate('theDrawer')}

适配器的过滤方法

RecyclerView recyclerView = (RecyclerView) context.findViewById(R.id.recyclerview);
FlexboxLayoutManager layoutManager = new FlexboxLayoutManager(context);
recyclerView.setLayoutManager(layoutManager);

2 个答案:

答案 0 :(得分:1)

这有效

@Override
public boolean onQueryTextChange(String query) {
    Filter.FilterListener listener = new Filter.FilterListener() {
        @Override
        public void onFilterComplete(int count) {
            if (newsListAdapter.getItemCount() <=0) {
                listRecyclerView.setVisibility(View.GONE);
                noRecord.setVisibility(View.VISIBLE);
            } else {
                listRecyclerView.setVisibility(View.VISIBLE);
                noRecord.setVisibility(View.GONE);
            }
        }
    };
    newsListAdapter.getFilter().filter(query, listener);
    return false;
}

答案 1 :(得分:0)

我想这全都是关于Android Studio关于系统OS的动态内存分配。您介意提及您的系统配置吗? 如果它低于4GB和i3-3rd,将使您的系统延迟。 Android Studio至少需要8GB的RAM,其余内容可在相应的文档中找到。