Android-特定视图上的手势检测(向上/向下滑动)
我正在尝试在Android中实现OnTestureListenerAndroid-特定视图上的手势检测(向上/向下滑动),android,swipe,gesture-recognition,onfling,Android,Swipe,Gesture Recognition,Onfling,我正在尝试在Android中实现OnTestureListener我的布局中有三个文本视图我试图实现的是为两个文本视图设置手势侦听器。 这是布局- 目前正在调用所有三个文本视图的Fling。是否有任何方法可以为布局中的某些特定视图设置手势侦听器 非常感谢您的帮助。您可以将OnTouchListeners设置为个人TextViews findViewById(R.id.tvOne).setOnTouchListener(new OnTouchListener() { @Override
我的布局中有三个文本视图
我试图实现的是为两个文本视图设置手势侦听器。
这是布局-
目前正在调用所有三个文本视图的Fling。
是否有任何方法可以为布局中的某些特定视图设置手势侦听器
非常感谢您的帮助。您可以将
OnTouchListener
s设置为个人TextView
s
findViewById(R.id.tvOne).setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
// Your code here
}
}
在您的
onCreate
方法中执行此操作
findViewById(R.id.tvOne).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event){
return gestureScanner.onTouchEvent(event);
}
});
建议
如果不想检测所有手势,请尝试以下类:
我自己创造的
下面是一些关于这个类用法的代码片段
用法
可用于检测刷卡手势:
- 左还是右
- 上下
onLongPress()
我们如何知道哪个视图被抛出?@SrujanBarai在上面的例子中,id为R.id的view
具有侦听器,因此它就是被触碰的视图。或者您可以使用视图传入onTouch()
请在您的github项目中公开接口“侦听器”,谢谢
findViewById(R.id.tvOne).setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
// Your code here
}
}
findViewById(R.id.tvOne).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event){
return gestureScanner.onTouchEvent(event);
}
});
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private GestureDetector mDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SimpleGestureListener simpleGestureListener = new SimpleGestureListener();
simpleGestureListener.setListener(new SimpleGestureListener.Listener() {
@Override
public void onScrollHorizontal(float dx) {
Log.i(TAG,"horizontal = " +dx);
}
@Override
public void onScrollVertical(float dy) {
Log.i(TAG,"vertical = " +dy);
}
});
mDetector = new GestureDetector(this, simpleGestureListener);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
mDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
}