Android 屏蔽系统侧滑返回

 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
            return false;
        }
        return super.onKeyDown(keyCode, event);
    }

Android中,如果你想要防止应用程序因用户从屏幕边缘侧滑退出(通常称为"back swipe"或"swipe up"),你需要在Activity或Fragment中处理OnTouchListener事件,并覆盖onTouchEvent方法。以下是一个简单的步骤示例: 1. 首先,在你的Java代码中创建一个Activity或Fragment,并设置一个全局的OnTouchListener: ```java public class YourActivity extends AppCompatActivity { private static final int SWIPE_THRESHOLD_DIP = 50; // 判断是否滑动的阈值 private static final int SWIPE_VELOCITY_THRESHOLD_DIP = 100; // 滑动速度的阈值 private GestureDetector gestureDetector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_your); gestureDetector = new GestureDetector(this, new MyGestureListener()); } private class MyGestureListener extends GestureDetector.SimpleOnGestureListener { // ... (在这里添加滑动手势处理方法) } } ``` 2. 实现`GestureDetector.SimpleOnGestureListener`的`onTouchEvent()`方法,检查滑动手势并阻止默认行为: ```java @Override public boolean onTouchEvent(MotionEvent event) { if (gestureDetector.onTouchEvent(event)) { // 如果检测到滑动,返回true来阻止系统默认的处理(如退出) return true; } else { // 其他操作... } return false; } // ... 在MyGestureListener中添加具体的滑动判断逻辑,例如: @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { if(Math.abs(distanceX) > SWIPE_THRESHOLD_DIP && Math.abs(e1.getY() - e2.getY()) <= SWIPE_THRESHOLD_DIP) { // 检测到水平方向的滑动 if(e1.getX() > e2.getX()) { // 左向滑动 // 执行相应逻辑,比如关闭当前活动等 } else { // 右向滑动 // 同理,执行相应逻辑 } return true; // 阻止默认的滚动效果 } return super.onScroll(e1, e2, distanceX, distanceY); } ``` 请注意,这只是一个基本的示例,实际应用中可能需要更复杂的逻辑来适应各种场景。同时,为了保持用户体验,确保在适当的时机提供用户界面反馈。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值