【问题标题】:How to blur background of search dialog?如何模糊搜索对话框的背景?
【发布时间】:2011-06-16 16:13:05
【问题描述】:

我在我的应用中创建了一个搜索活动,采用标准的 Android 方式,没有自定义建议。当用户开始输入文本或按下搜索按钮时,他们会看到一个带有搜索框的搜索对话框,类似于此处的图 1:

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

您会注意到背景中是之前的活动、“遵守”等词。

我的问题是,前一个活动在搜索对话框后面显示为一天,这让用户感到困惑,因为用户认为所有仍然处于活动状态,他们尝试按下它,但它只是取消了搜索对话框.它会分散用户对搜索任务的注意力(他们可能想知道那些搜索结果吗?)。

问题:如何模糊(失去焦点)或使之前的活动变暗? 我实际上在某些应用的搜索屏幕中看到了这一点。

【问题讨论】:

    标签: android search


    【解决方案1】:

    我找到了一种简单的方法来模糊搜索对话框的背景:

    基本上,它只是在 ListView(或对话框下方的内容)上添加(半)透明视图并默认隐藏它。如果搜索对话框出现(调用 onSearchRequested()),则设置为可见,如果消失,则设置回消失(不可见)。

    在我的博客上查看详细信息:http://mavistechchannel.wordpress.com/2011/08/13/blur-background-android-search-dialog/

    【讨论】:

    • 宾果游戏!这听起来很棒(虽然我还没有尝试过)。谢谢。解决这个问题的另一种可能的方法是忘记使用标准的 Android 搜索,而是自己处理所有事情(创建自己的对话框)。我看到很多应用似乎都有自定义搜索对话框。
    【解决方案2】:

    假设您从Dialog.Builder 获得dialog,请使用以下内容:

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

    【讨论】:

    • 我没有搜索对话框的句柄,它是由 Android 自动创建的,因为我已将它放在活动 <meta-data android:name="android.app.default_searchable" 的清单中。如果我知道如何处理 Android 提出的那个对话框,我可以按照你的建议做 addFlags,但搜索活动似乎与我的其他活动(甚至我的搜索结果活动)是分开的。
    • FLAG_DIM_BEHIND 也可以使用,因为模糊已被弃用。
    猜你喜欢
    • 2023-01-13
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多