2

SlidingDrawerを備えたRelativeLayoutがあります。引き出しをメニューとして使っています。ドロワー内のアイテムをクリックすると、ImageViewがRelativeLayoutに追加されます。ImageViewを動かせるようにしたいと思います。

SlidingDrawerのメニュー項目ごとにClickListenerを使用しています。この部分はうまく機能します。私がRelativeViewに追加するオブジェクトには、TouchListenerを設定します。追加するImageViewに対して、TouchListenerを設定しました。ただし、1つのImageViewを追加すると、メニュー項目は機能しなくなります。TouchListenerが制御を引き継ぎ、ClickListenerがバイパスされます。

コードは次のとおりです。

    OnClickListener navClickListener;  //This is set for each menu item
    OnTouchListener objectTouchListener  //This is set for each new ImageView

    navClickListener = new OnClickListener(){
        @Override
        public void onClick(View v){
            performClickAction(v);
        }
    };

    objectTouchListener = new OnTouchListener(){
        @Override
        public boolean onTouch(View v, MotionEvent event){
            performTouchAction(v, event);
            return false;
        }
    };

TouchListenerがClickListenerをオーバーライドするのはなぜですか?それを回避するにはどうすればよいですか?

4

1 に答える 1

0

OnTouchがOnClickをまったくオーバーライドしていなかったことがわかりました。画像は、両方の軸にMATCH_PARENTが設定された状態でレイアウトに追加され、画面全体を占めていました。画像が円であるため、画面全体を占めているようには見えず、側面のボタンがはっきりと見えていましたが、ImageViewが画面全体を占めていたようです。

回答してくれた人たちに感謝します!

于 2012-11-21T20:59:47.933 に答える