3

LinearLayoutを展開してカスタムウィジェットを作成しています。カスタムウィジェットの要素の1つは、別のレイアウトから拡張された線形レイアウトです。OnClickListenerを設定すると、応答しません。あなたがアドバイスしていただけますか?

ありがとう!

4

3 に答える 3

3

setOnClickListenerを使用する代わりにsetOnTouchListenerを使用します。 このコードは onclick イベントとして機能します。

YourLinearLayout.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            boolean returnValue = true;
            if(event.getAction()==MotionEvent.ACTION_UP){ //on touch release
                returnValue = false; //prevent default action on release
                //do something here
            }
            return returnValue;
        }
    });

そして、これを LinearLayout クラスに追加して、子のタッチ イベントをインターセプトします。

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    return true; //will prevent child touch events 
}
于 2015-09-17T13:32:55.223 に答える
1

LinearLayoutをクリック可能と宣言しましたか?

これは、XMLのいずれかで実行できます。

android:clickable = "true"

またはJavaコードの場合:

myLinearLayout.setClickable(true);

この質問に関する他のStackOverflowスレッドも参照してください。

LinearLayoutのonClickListener

于 2011-04-29T21:15:12.017 に答える