2011-06-16 51 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