Fragmentクラスでは、フラグメントをXMLレイアウトで膨らませます。レイアウトは、(ホイールの)ImageViewを含む単純なLinearLayoutです。ImageViewで発生したタッチイベントを取得したいのですが、コードは次のとおりです。
public class WheelFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment (Get the view from XML)
View view = inflater.inflate(R.layout.wheel_layout, container, false);
// Get the imageview of the wheel inside the view
ImageView wheelView = (ImageView) view.findViewById(R.id.wheel);
// Set onTouchListener
wheelView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Log.d("down", "ACTION_DOWN");
}
if (event.getAction() == MotionEvent.ACTION_UP) {
Log.d("up", "ACTION_UP");
}
}
return true;
}
});
// Return the view
return view;
}
}
ACTION_DOWNイベントを取得するのに問題はありませんが、ACTION_UPイベントを取得できません。
役に立たないACTION_CANCELイベントを追加しようとしました(フォーラムで問題が解決する可能性があることを確認しました)。
また、戻り値としてtrue/falseの両方の値を試しました。
ACTION_UPイベントを機能させる簡単な方法はありますか?ありがとう。