我有一个滚动视图水平多个relativelayout视图...一个数据库中的每个记录...是以编程方式创建的。确定多个视图中的哪个视图具有手势(双击,向左滑动,向右滑动等)?
我需要确定哪些观点得到了一些手势...点击,双击,和左/右轻扫影响。
当然的Click我能得到具有:
RelativeLayout rlView = new RelativeLayout(this);
rlView.setId(10000+myrecordid);
rlView.setOnClickListener(myviewclick);
和myviewclick:
private View.OnClickListener myviewclick = new View.OnClickListener() {
public void onClick(View v) {
Integer i=v.getId()-10000;
// Do some processing on this view
}
};
从我在网上找到的,我试图让姿势是这样的:
rlView.setOnTouchListener(myviewtouch);
使用此代码:
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;
}
});
};
据MYLOG,我需要得到适当的手势。问题是,我不知道如何获取手势所在的视图ID。我知道它是在onTouch
中,但是那叫做gestureDetector.OnTouchEvent
来确定动作...并且我在此处丢失了。
我找遍了的StackOverflow和其他网站几个小时......他们对如何确定手势...但很难找到有关使用,我可以使用多个视图使用什么尽显差异。
任何帮助,将不胜感激。
我解释了为什么我在[这个问题]中添加赏金的上下文(https://stackoverflow.com/questions/45070129/detecting-common-gestures-on-multiple-views-in-android)。 – Suragch