从Android中WindowManager添加的视图捕获onTouch或onClick事件
我已经被一个问题困扰了好几天了,我的谷歌搜索开始失去可能的解决方案。我试图创建一个类,该类添加一个视图并接收onTouch事件或onClick事件,与UndoBar库非常相似。问题是,除非我将视图添加到视图组而不是WindowManager,否则永远不会调用onTouch/onClick事件。下面是我的非工作代码:从Android中WindowManager添加的视图捕获onTouch或onClick事件,android,onclick,touch-event,android-windowmanager,Android,Onclick,Touch Event,Android Windowmanager,我已经被一个问题困扰了好几天了,我的谷歌搜索开始失去可能的解决方案。我试图创建一个类,该类添加一个视图并接收onTouch事件或onClick事件,与UndoBar库非常相似。问题是,除非我将视图添加到视图组而不是WindowManager,否则永远不会调用onTouch/onClick事件。下面是我的非工作代码: final LayoutInflater mLayoutInflater = (LayoutInflater) context.getSystemS
final LayoutInflater mLayoutInflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View mView = mLayoutInflater
.inflate(R.layout.test, null);
final TextView clickTextView = (TextView)
mView.findViewById(R.id.clickTextView);
WindowManager mWindowManager = (WindowManager)
context.getSystemService(Context.WINDOW_SERVICE);
final WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
params.format = PixelFormat.TRANSLUCENT;
params.type = WindowManager.LayoutParams.TYPE_TOAST;
mWindowManager.addView(mView, params);
clickTextView.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
Log.i("onTouch", "onTouch has been called");
return false;
}
});
}
请注意:此处传递的上下文是活动上下文
要使这段代码正常工作,我需要获取活动的根布局并将视图添加到其中。我的问题,也可能是noob问题,是为什么我不能获得添加到WindowManager的视图的事件的onTouch/onClick
谢谢您的帮助。这是使这项工作正常进行的代码,但仍然没有找到对我的问题的解释
final View mView = mLayoutInflater
.inflate(R.layout.test, activityViewGroup, false);
activityViewGroup.addView(mView);