Window Manager点击问题

时间:2018-04-30 05:22:42

标签: android window-managers

以下代码段仅显示视图,但点击按钮不起作用。我已经尝试了所有解决方案但似乎没有任何工作。另一个服务具有相同的代码片段,具有不同的布局效果。

public int onStartCommand(final Intent intent, int flags, int startId) {

LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
if (inflater!=null)
    v = inflater.inflate(R.layout.layout_accept_sos, null);
    close = v.findViewById(R.id.close);
    close.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            onDestroy();
        }
    });
    getDirection = v.findViewById(R.id.getDirection);
    getDirection.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent1=new Intent();
            intent1.setAction("open_map");
            sendBroadcast(intent1);
          //  onDestroy();
        }
    });

params = new WindowManager.LayoutParams(LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, LayoutParams.FLAG_ALT_FOCUSABLE_IM | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, PixelFormat.TRANSLUCENT);
params.gravity = Gravity.LEFT | Gravity.TOP;
params.x = 0;
params.y = 0;
wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
wm.addView(v, params);
return START_STICKY;
}

1 个答案:

答案 0 :(得分:0)

您需要使用WindowManager.FLAG_NOT_FOCUSABLE使其可点击。

params = new WindowManager.LayoutParams(LayoutParams.MATCH_PARENT, 
WindowManager.LayoutParams.MATCH_PARENT, 
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, 
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
PixelFormat.TRANSLUCENT);

https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_NOT_FOCUSABLE

提供更多说明