点击事件不会在RecyclerView中冒出来

6 events android android-view

我想知道为什么click如果我点击内部事件不会冒泡RecyclerView.

我的场景使用一个简单的方法RecyclerView来显示一些TextViews,而其父级View已经OnClickListener注册,以便在有人点击视图时执行某些操作.如果我点击例如TextView,点击事件会正确地冒泡到父母.但如果我点击RecyclerView,点击不会冒泡.奇怪的是,如果我OnClickListener直接设置RecyclerView它也永远不会被解雇.我认为那是万恶之源.

那么,为什么我RecyclerView没有收到任何点击事件?为什么其父级没有收到任何点击事件?

层次结构如下所示:

- View (has an OnClickListener)  <- Why no clicks?
    - RecyclerView (clickable=false)
        - TextView
        - TextView
        ....
Run Code Online (Sandbox Code Playgroud)

我尝试用setFocusable()setClickable(),但没有运气.

PS:我当前的解决方案OnClickListener在每个TextView内部设置,RecyclerViewgetParent()使用performClick()手动将点击传播到父视图.

Mig*_*Slv 0

我使用特殊的类处理程序RecyclerViewRecyclerView.OnItemTouchListener. 我可以从消费类中添加。这是处理程序类的默认实现:

recyclerView.addOnItemTouchListener( new RecyclerView.OnItemTouchListener() {

        @Override
        public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
            //Put your code here.
            //Called 2 times per touch, on pressdown and on release.

            return false; //true will disable scroll view. 
        }

        @Override
        public void onTouchEvent(RecyclerView rv, MotionEvent e) {
            setDefaultBottomBar();
        }

        @Override
        public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

        }
    });
Run Code Online (Sandbox Code Playgroud)