我正在服务类
中实现windowManagerWindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(mView, params);
我在Windows管理器中添加了一个视图,但该视图的点击监听器无效。
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;
我希望点击监听器正常工作,但它不能正常工作,所以请在这方面帮助我。
答案 0 :(得分:7)
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);
答案 1 :(得分:1)
对我来说,我正在使用它:
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
我发现在android 4.0之后,由于安全原因,这个标志会阻止对窗口管理器的点击