我需要知道如何检测用户触摸外部搜索。重现的步骤:
点击搜索图标。这会打开标准搜索对话框。触摸外部搜索对话框。我需要解决这个问题吗?为什么?因为我有一个标题,在搜索过程中被替换。我在搜索过程中隐藏它,但在外部搜索时我需要恢复我的其他标题。那么如何检测搜索对话框外的操作呢?
答案 0 :(得分:1)
为您的整个TouchListener
添加View
:
final View touchView = findViewById(R.id.touchView);
touchView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getX() == x && event.getY() == y) // x and y are within the search box
{
//you clicked inside the search box,do nothing
}
if(event.getX() == outsideSearchBox && event.getY() == outsideSearchBox)
{
//do your stuff
}
return true;
}
});
您只需确定搜索框所在的坐标,然后就可以应用上述逻辑。
答案 1 :(得分:0)
可以使用SearchManager注册onDismiss侦听器。这会告诉您何时关闭搜索对话框。所以我在我的活动中实现了onDismiss()方法。在创建中,我使用ServiceManager将我的活动注册为OnDismiss侦听器。它工作正常。