- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 ActivityMain,它有 OnSwipeTouchListener 的内部类,这个类包含触摸手势的逻辑。但我不知道如何在我的 onCreate 函数中实现左右滑动。我想我需要在引用 mainactivity 时在 View 或 this 上实现它。但我无法弄清楚如何。如果有人能指出如何在 onCreate 方法中调用 onSwipeRight 和 onSwipeLeft,不胜感激。
package org.pctechtips.zentech.TestApp;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/**
* Gestures and swipe class
*/
public class OnSwipeTouchListener implements View.OnTouchListener {
private final GestureDetector gestureDetector;
public OnSwipeTouchListener (Context ctx){
gestureDetector = new GestureDetector(ctx, new GestureListener());
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
private final class GestureListener extends GestureDetector.SimpleOnGestureListener {
private static final int SWIPE_THRESHOLD = 100;
private static final int SWIPE_VELOCITY_THRESHOLD = 100;
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
boolean result = false;
try {
float diffY = e2.getY() - e1.getY();
float diffX = e2.getX() - e1.getX();
if (Math.abs(diffX) > Math.abs(diffY)) {
if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
if (diffX > 0) {
onSwipeRight();
} else {
onSwipeLeft();
}
result = true;
}
}
else if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) {
if (diffY > 0) {
onSwipeBottom();
} else {
onSwipeTop();
}
result = true;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return result;
}
}
public void onSwipeRight() {
Toast.makeText(MainActivity.this, "Right", Toast.LENGTH_SHORT).show();
}
public void onSwipeLeft() {
Toast.makeText(getApplicationContext(), "Left", Toast.LENGTH_SHORT).show();
}
public void onSwipeTop() {
}
public void onSwipeBottom() {
}
}
}
最佳答案
我在 https://stackoverflow.com/a/54004270/3279535 中回答了这个问题
有好的代码
关于android - 我应该在哪里为 Main Activity 实现 setOnTouchListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51069659/
对于同一个问题,我看了一些不同的回答,所以我不知道哪个是对的,然后我决定再问一遍。请尽量不要引用此答案中的任何其他链接。如果您想这样做,我会期待一些额外的解释。 我的问题是:我在 ViewPager
我想设置一个仅在玩家对象被触摸时发生的触摸事件。但为什么我的播放器类仍然无法使用 setOnTouchListener 方法?我把它放在一个扩展 SurfaceView 并实现 SurfaceHold
我已经在我的游戏中添加了一个计时器,但是这样做我总是收到错误“ View 类型中的方法 setOnTouchListener(View.OnTouchListener) 不适用于参数 (scene5.
我有一个 ViewPager 组件,在 fragment 内部有一个 WebView 组件,我想检测用户在屏幕上的点击,同时用户也可以滑动。 目前我在 ViewPager 上设置 onTouchLis
我正在将我的 ViewPager 迁移到新的 ViewPager2。不幸的是,对于这个新类(class),setOnTouchListener永远不会被调用。 mViewPager.setOnTouc
我正在尝试使用 setontouchlistener。如果我按住图像按钮 5 秒钟,我会收到警报...这就是我要做的事情: final ImageButton imageButton1 = (
我正在循环中创建 OnTouchListener: for(int i = 0; i < buttons.length; i++){ for(int j = 0; j < button
我在这个motion event 中使用 imageview on touch listener 不工作为什么会发生这种情况任何人对此有帮助我。 这是我的代码 img_View11.setOnT
我正在编写我的第一个 Android 应用程序(我对 Java 并不陌生)。这是我的问题:我使用 ImageView 来显示图形。我想编写一个方法,当 ImageView 被触摸时调用并获取触摸坐标作
我有这个 XML 代码:
我想实现一个覆盖所有 onTouchListener 的通用系统在 viewGroup 上并稍后恢复它们。 我想用 map 来存储每个 View 的原始监听器,但我没有找到任何方法获取当前分配的监听器
我试图实现一个 daragble 相对布局。所以我实现了这段代码:- body.setOnTouchListener(new OnTouchListener() { @Over
目标:我有一个自定义按钮,它已经包含我想保留的 onTouch 功能,但要在其之上添加功能。 问题:像这样添加一个 onTouch 会覆盖原来的自定义按钮功能,因此不再执行原来需要的行为。有或没有注释
我在 android 中实现 listview。我希望在按下 listview 项目时增加 listview 行的 layout_width 和 height。我正在使用 zoom_in 动画来缩放我
我通过使用 setOnTouchListener 向上滑动和向下滑动布局(为了理解请参见下图) 图片 但我想在单击按钮时向上滑动和向下滑动布局,而不是在 OnTouchListener 时。为此,我尝
为什么setOnTouchListener之后的命令不起作用? 例如: public class MainActivity extends AppCompatActivity implements V
我有一个带有适配器的recyclerview,一切都很酷。我添加了 view.setOnTouchListener,以便我可以在 1 个屏幕上从左到右滚动此 recyclerview 以及动画和其他元
为什么我的程序中不能使用setOnClickListener和setOnTouchListener?OnTouchListener 运行良好,但我无法运行新 Activity ?我做错了什么? for
我正在尝试将 onTouchListener 添加到 ImageView,以便我可以获得用户从他们拍摄的图像中选择的像素值。因此,我在主 Activity 中实现了 onTouchListener,并
我喜欢向右、向左滑动来切换 Activity 的布局。但是切换布局后,一旦 setOnTouchListener 停止工作。我有什么错? 我的 Activity : import androidx.a
我是一名优秀的程序员,十分优秀!