2011-06-16 54 views
3

我已經在我的應用中以標準Android方式創建了搜索活動,但沒有自定義建議。當用戶開始輸入文字或按下搜索按鈕,他們從這裏得到與搜索框,類似於圖1中的搜索對話框:如何模糊搜索對話框的背景?

http://developer.android.com/guide/topics/search/search-dialog.html

你會在後臺看到的是以前的活動中,單詞「abide」等。

我的問題是,之前的活動顯示爲在搜索對話框後面的日子,以及它對用戶的混淆,因爲用戶認爲所有這些仍然活動,並且他們試圖按下它,但它只是取消搜索對話框。它分散用戶從搜索任務(是那些搜索結果,他們可能想知道?)。

問題:如何模糊(使焦點不清)或使之前的活動變暗? 我在一些應用程序的搜索屏幕中看到了這一點。

回答

2

我發現了一個簡單的方法來模糊搜索對話框的背景:透明

基本上它只是增加一個(半)查看ListView(或對話框下的內容)並默認隱藏它。如果搜索對話框出現(調用onSearchRequested()),它將被設置爲可見,如果它消失,它將被設置回去(不可見)。

退房在我的博客的細節:http://mavistechchannel.wordpress.com/2011/08/13/blur-background-android-search-dialog/

+0

賓果!這聽起來很棒(我還沒有嘗試過)。謝謝。解決這個問題的另一個可能的方法是忘記使用標準的Android搜索,而是自己處理所有事情(創建自己的對話框)。我看到很多似乎都有自定義搜索對話框的應用程序。 – Lucy 2011-08-14 22:29:53

2

假設你從Dialog.Builderdialog,使用以下命令:

dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND); 
+0

我沒有在搜索對話框,這是由Android會自動創建一個手柄,因爲我已經把這個活動中的'<元的清單-data android:name =「android.app.default_searchable」'。如果我知道如何處理Android提供的對話框,我可以按照您的建議來做addFlags,但搜索活動似乎與我的其他活動(即使是我的搜索結果活動)是分開的。 – Lucy 2011-06-16 20:39:58

+0

也可以使用FLAG_DIM_BEHIND,因爲模糊已被棄用。 – yuku 2012-03-26 08:37:45