2

给定PopupWindow这样的定义:

public class MyWindow extends PopupWindow implements View.OnTouchListener {
    MyWindow(View view) {
        super(view);

        setHeight(view.getMeasuredHeight());
        setFocusable(true);
        setTouchable(true);
        setTouchInterceptor(this);
    }

    public boolean onTouch(View v, MotionEvent event) {
        System.out.println("onTouch()");
        return true;
    }
}

由于某种原因,onTouch()从未调用过。

我究竟做错了什么?我怎样才能PopupWindow接受触摸事件?

4

1 回答 1

2

正如在另一个问题的答案PopupWindow中所讨论的,需要Drawable显式设置背景,即使它已从 XML 膨胀并且在视觉上不需要背景设置。

我通过添加这一行来解决这个问题:

        setBackgroundDrawable(new ShapeDrawable());

给构造函数。

于 2012-06-05T01:27:49.947 回答