ScrollView中的Android单击视图

问题描述

我在ScrollView的LinearLayout中有一个包含5个项目的布局。我希望这些项目是可点击的,并且不会干扰滚动。

问题正在滚动。如果向上/向下拖动项目,则不会滚动。如果我在项目之间的边距上上下拖动,它会滚动。

用户在项目上向上/向下拖动时,如何处理项目的单击事件并允许滚动?

注意:这与有效的布局无关,或者仅与使用RecyclerView有关(这似乎有点过头)。我想知道如何滚动和处理被点击的孩子。

我尝试了单击和触摸侦听器,GestureDetector,onInterceptTouchEvent的各种组合...但是我似乎只能单击或滚动,而不能同时单击。

我遵循了这些教程/答案,但都没有成功:

肯定有一些简单的东西我想念...一些标志或东西吗?

布局:

override fun onCreate(savedInstanceState: Bundle?) {
   itemOne.setonClickListener(this)
   itemTwo.setonClickListener(this)
   ...
}

override fun onClick(view: View?) {
   when (view?.id) {
      R.id.itemOne-> ...
      R.id.itemTwo -> ...
      ...
   }
}

活动

{{1}}

解决方法

只需删除XML中的scrollView id使其在R文件中不列出,这将使其在侦听器中不可点击