lok*_*oko 6 java android android-widget searchview
我正在使用操作栏并向其添加searchView.我已经实现了searchView.onCLoseListener,但似乎没有被调用.有什么建议 ?
我的代码看起来像这样:
SearchView searchView = new SearchView(getContext());
searchView.setOnCloseListener(new OnCloseListener() {
public boolean onClose() {
searchView.setVisibility(SearchView.GONE);
// Do Something
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
Dar*_*rio 24
我在android 4.1.1上遇到了同样的问题.看起来这是一个已知的错误:https://code.google.com/p/android/issues/detail?id = 25758
无论如何,作为一种解决方法,我使用状态更改侦听器(当SearchView与操作栏分离时,它也明显关闭).
view.addOnAttachStateChangeListener(new OnAttachStateChangeListener() {
@Override
public void onViewDetachedFromWindow(View arg0) {
// search was detached/closed
}
@Override
public void onViewAttachedToWindow(View arg0) {
// search was opened
}
});
Run Code Online (Sandbox Code Playgroud)
以上代码在我的案例中运作良好.
小智 5
为了从 SearchView.OnCloseListener 调用 onClose() 方法。我按照以下方式使它工作。将其添加到您的搜索视图中
searchView.setIconifiedByDefault(true);
searchView.setOnCloseListener(this);
Run Code Online (Sandbox Code Playgroud)
现在实现这个 onclick 监听器
searchView.findViewById(R.id.search_close_btn)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("called","this is called.");
searchView.setQuery("",false);
searchView.setIconified(true);
}
});
Run Code Online (Sandbox Code Playgroud)
这对我有用。分享以便也可以帮助其他人。谢谢
好的。我错了。我们无法添加 searchCommand 并执行以下操作
setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW)
Run Code Online (Sandbox Code Playgroud)
这样做会删除 searchText(如果有),因此我们无法执行 onClose()。
| 归档时间: |
|
| 查看次数: |
7464 次 |
| 最近记录: |