java - CollapsingToolbarLayout 内的自定义手势检测

标签 java android view gesture android-collapsingtoolbarlayout

我正在尝试使用我在 CollapsingToolbarLayout 中编写的自定义 View ,但触摸事件似乎无法通过手势检测正确传播到我的自定义 View 。结果是滚动和与 View 的交互无法按预期或顺利进行。我的自定义 View 大量使用 GestureDetector.SimpleOnGestureListener

是否可以在 CollapsingToolbarLayout 中嵌入具有自己的触摸事件的自定义 View ?

最佳答案

经过一番排查,发现问题出在onTouchEvent上,具体来说,需要给父 View requestDisallowInterceptTouchEvent,让父 View 不处理触摸事件:

    public boolean onTouchEvent(MotionEvent event) {
      // Do stuff on touch 
      // prevent parent container from processing ACTION_MOVE events
      if(event.getAction() == MotionEvent.ACTION_MOVE) {
        getParent().requestDisallowInterceptTouchEvent(true);
      } else if(event.getAction() == MotionEvent.ACTION_CANCEL) {
        getParent().requestDisallowInterceptTouchEvent(false);
      }

    // Do some more stuff
    return true;
}

关于java - CollapsingToolbarLayout 内的自定义手势检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33769709/

相关文章:

java - xml 布局不适合我

Android - getCurrentFocus().clearFocus() 时会发生什么

android - ViewGroupOverlay 不显示 View

android - 在 MPAndroidChart 库的 BarChart View 上设置新数据时的左填充

java - 如何放玩!任意子包中的 Controller

java - 如何使用 RecyclerView 滚动屏幕并逐步加载项目?

java - 为什么 Spring Security 和 Keycloak 收到 "Access is denied"错误?

java - 如何在Android中使用SmsManager发送具有自定义线程ID的短信?

android - 为什么当我从 onResume Activity 调用 AsyncTask 时,我看不到进度对话框?

java - 如何让JFrame背景图片透明?