【发布时间】:2019-07-24 06:55:03
【问题描述】:
searchView 和 recyclerView 的布局相同。
recyclerView 正在使用过滤器并且它工作正常。
当我在searchView 上输入查询时出现问题。在我输入查询的第一个字符后,searchView 不会让我完成输入,而是会失去焦点。假设我想显示名称中包含“1234”的所有项目,searchView 在我输入“1”后将失去焦点,然后显示所有包含“1”的项目。如果我想继续,我必须再次单击 searchView。
这是我的布局(在片段中):
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.SearchView
android:id="@+id/sv_test"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
android:inputType="number"
app:iconifiedByDefault="false"
app:queryBackground="@android:color/transparent"
app:queryHint="Hint"
app:theme="@style/AppSearchView">
</android.support.v7.widget.SearchView>
<View
android:id="@+id/divider50"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/light_grey"
android:visibility="visible" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_test"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
这是我的过滤命令:
private void setSearchview() {
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
adapter.getFilter().filter(query);
return false;
}
@Override
public boolean onQueryTextChange(String query) {
adapter.getFilter().filter(query);
return false;
}
});
}
我在自定义警报对话框中有类似的布局,它工作正常,没有任何问题。很奇怪吧?
【问题讨论】:
-
返回真而不是假
-
@ChandraShekharKaushik 你好,我已经尝试过了,但看起来问题是我的 recyclerView 中的项目一直在窃取焦点。还是谢谢你。
标签: android android-recyclerview searchview