簡體   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