我正在我的服务类中实现windowManager
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(mView, params);
我在我的窗口管理器中添加了一个 View ,但该 View 的点击监听器不工作。
mView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(),"onClick", Toast.LENGTH_LONG).show();
}
});
这是布局参数。
WindowManager.LayoutParams params = new WindowManager.LayoutParams(130,130);
params.type=WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
params.flags=WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
params.format=PixelFormat.TRANSPARENT;
我希望点击监听器正常工作,但它不工作,所以请在这方面帮助我。
最佳答案
您好,经过长时间的研究,我找到了这段代码。这应该工作。试试 。在创建服务类时添加此行。以下内容是我们应该传递的参数 FLAG_WATCH_OUTSIDE_TOUCH 和所有。希望这对你有帮助。
WindowManager.LayoutParams params = new WindowManager.LayoutParams(100, 100, 2007, 8, -3);
Button bb=new Button(this);
bb.setText("Button");
bb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println("Clicked----><<<<<<<");
}
});
bb.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
System.out.println("Touched =----- > ");
return false;
}
});
params.gravity = Gravity.RIGHT | Gravity.TOP;
params.setTitle("Load Average");
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(bb, params);
关于android - 无法在 WindowManager 中调用 onClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15064657/