LinearLayoutを展開してカスタムウィジェットを作成しています。カスタムウィジェットの要素の1つは、別のレイアウトから拡張された線形レイアウトです。OnClickListenerを設定すると、応答しません。あなたがアドバイスしていただけますか?
ありがとう!
LinearLayoutを展開してカスタムウィジェットを作成しています。カスタムウィジェットの要素の1つは、別のレイアウトから拡張された線形レイアウトです。OnClickListenerを設定すると、応答しません。あなたがアドバイスしていただけますか?
ありがとう!
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
}
LinearLayoutをクリック可能と宣言しましたか?
これは、XMLのいずれかで実行できます。
android:clickable = "true"
またはJavaコードの場合:
myLinearLayout.setClickable(true);
この質問に関する他のStackOverflowスレッドも参照してください。