Tôi có một chế độ xem cuộn với nhiều chế độ xem relativelayout theo chiều ngang ... một cho mỗi bản ghi trong cơ sở dữ liệu ... được tạo theo chương trình.Xác định VIEW nào trong nhiều lượt xem có cử chỉ (nhấp đúp, vuốt sang trái, vuốt sang phải, v.v ...)?
Tôi cần xác định chế độ xem nào bị ảnh hưởng bởi một số cử chỉ ... nhấp, nhấp đúp và vuốt sang trái/phải.
Tất nhiên CLICK tôi đã có thể nhận được với:
RelativeLayout rlView = new RelativeLayout(this);
rlView.setId(10000+myrecordid);
rlView.setOnClickListener(myviewclick);
và myviewclick:
private View.OnClickListener myviewclick = new View.OnClickListener() {
public void onClick(View v) {
Integer i=v.getId()-10000;
// Do some processing on this view
}
};
Từ những gì tôi tìm thấy trên mạng, tôi đã cố gắng để có được những cử chỉ theo cách này:
rlView.setOnTouchListener(myviewtouch);
với mã này:
private View.OnTouchListener myviewtouch = new View.OnTouchListener(){
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
GestureDetector gestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDoubleTap(MotionEvent e) {
Log.i("MYLOG","double tap");
return true;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
Log.i("MYLOG","SingleTapConfirmed");
return true;
}
@Override
public void onLongPress(MotionEvent e) {
Log.i("MYLOG","LongPress");
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (e1.getX()<e2.getX())
Log.i("MYLOG","Fling Right");
else
Log.i("MYLOG","Fling Left");
return true;
}
});
};
Theo MYLOG, tôi nhận được các cử chỉ thích hợp khi cần. Vấn đề là, tôi không biết làm thế nào để có được ID quan điểm mà các cử chỉ được in Tôi biết nó là trong onTouch
nhưng được gọi là gestureDetector.OnTouchEvent
để xác định chuyển động ... và tôi bị mất vào thời điểm này.
Tôi đã tìm kiếm trên StackOverflow và các trang khác trong vài giờ ... tất cả đều thể hiện sự chênh lệch về cách xác định cử chỉ ... nhưng gặp khó khăn khi tìm kiếm bất kỳ điều gì về việc sử dụng nhiều chế độ xem.
Mọi trợ giúp sẽ được đánh giá cao.
Tôi giải thích ngữ cảnh vì sao tôi thêm tiền thưởng vào [câu hỏi này] (https://stackoverflow.com/questions/45070129/detecting-common-gestures-on-multiple-views-in-android). – Suragch