如下图,我做了一个包含一个按钮、一个编辑框的悬浮窗
现在已经实现通过摁住图中黑线下方displayview的部分,拖动整个悬浮窗
但是我想达到通过拖动按钮拖拽整个悬浮窗的效果,如果通过修改以下代码
private void showFloatingWindow() {
if (Settings.canDrawOverlays(this)) {
LayoutInflater inflater=LayoutInflater.from(this);
displayView= (ViewGroup)inflater.inflate(R.layout.floating_edittext, null);
Button btn_menu_floating=displayView.findViewById(R.id.btn_menu_floating);
displayView.setOnTouchListener(new FloatingOnTouchListener());
windowManager.addView(displayView, layoutParams);
}
}
把
displayView.setOnTouchListener(new FloatingOnTouchListener());
修改成
btn_menu_floating.setOnTouchListener(new FloatingOnTouchListener());
可以顺利运行程序,建立悬浮窗,但是拖动按钮就会报错
java.lang.IllegalArgumentException:Button not attached to window manager
想请教的问题有两个,一个是为什么会报错,二是如何修改可以实现通过按钮拖动整个悬浮窗的效果