繁体   English   中英

Android:按下搜索按钮时显示白色背景

[英]Android: show white background when search button pressed

当我按设备上的搜索键时,我希望它显示白色背景。 但是,当我按下“后退”按钮时,我希望恢复上一个活动的背景。 ivBackground是我添加到我的相对ivBackground中的变量,我将其变为可见以显示白色背景。

 public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_SEARCH) {
        ivBackground.setVisibility(View.VISIBLE);//WHITE IMAGEVIEW
        return false;
    } else if (keyCode == KeyEvent.KEYCODE_BACK) {
        ivBackground.setVisibility(View.GONE);
        return true;
    }
    return super.onKeyDown(keyCode, event);
 } 

虽然上面的代码有效,但问题是当我按下“后退”按钮时,白屏仍然存在。 只有再次按下返回按钮,它才会消失。 有什么办法吗?

在相关活动上,您可以获取对SearchManager对象的引用。 在此,您可以设置一个OnDismissListener ,它被称为当关闭搜索UI时,例如

this.searchMgr = (SearchManager)this.getSystemService(Context.SEARCH_SERVICE);
this.searchMgr.setOnDismissListener(new OnDismissListener() {
    public void onDismiss() {
        ivBackground.setVisibility(View.GONE);
    }
});

为了使白色背景可见,您可以覆盖活动类中的onSearchRequested ,当用户发出希望开始搜索的信号时调用

@Override
public boolean onSearchRequested() {
    ivBackground.setVisibility(View.VISIBLE);
    return super.onSearchRequested();
}

希望这可以帮助!

如何设置同时隐藏您的视图的SearchView.OnCloseListenerSearchManager.OnDismissListener 无论如何,这似乎是正确的解决方案,因为两个事件在逻辑上是联系在一起的。 例如,如果您以后以编程方式关闭搜索视图,则不必担心分别关闭背景视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM