0

これは私のポップアップウィンドウです。しかし、それはタッチイベントを処理しています..

    popup = new PopupWindow(popupView, 300, 300, true);
    popup.showAsDropDown(v, -30, 0);
    popup.setBackgroundDrawable(getResources().getDrawable(R.drawable.background));
    popup.setOutsideTouchable(true);
    popup.setTouchable(true);
    popup.setFocusable(true);
    popup.setTouchInterceptor(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            Log.d("TAG", "Touched in the window");
            return false;
        }
    });

このコードの問題を教えてください..

4

1 に答える 1

0

このスレッドに出くわした人を助けるために...

の代わりに、PopupWindow のメンバーではないorsetTouchInterceptor()を使用していますが、単に LayoutInflater を呼び出してポップアップ (ビュー) を取得し、それを PopupWindow レイアウトとして設定します。View メンバー関数を使用して MAGIC を実行する方が適しているので、続けてください。setOnClickListener()setOnTouchListener()

コードサンプル:

LinearLayout viewGroup = (LinearLayout) context.findViewById(R.id.my_popup_layout_id);
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = layoutInflater.inflate(R.layout.popup_layout, viewGroup);


popup = new PopupWindow(context);
popup.setContentView(layout);
popup.setWidth(popupWidth);
popup.setHeight(popupHeight);
//popup.setFocusable(true);
popup.setOutsideTouchable(false);


popup.showAsDropDown(anchorViewOfYourChoice, OFFSET_X, OFFSET_Y);
于 2013-05-07T17:03:08.307 に答える