繁体   English   中英

点击问题上的 Recyclerview 子项

[英]Recyclerview child item on click issues

我在网格设置中有一个 Reyclerview。

这是它的样子

在此处输入图片说明

我的问题是我已经在我的 recyclerview 子卡中实现了红色按钮的 onTouchListeners 以及整个卡的触摸。

[侦听我的适配器中红色按钮的 onTouch 事件和我片段中的 recyclerview 整个子项的 OnItemTouchListener]

现在,当我点击红色按钮时,点击监听器都会触发

我如何确保当我点击红色按钮时,只有 onTouchListener 被触发,而不是整个卡片 onItemTouch 侦听器?

在普通的 gridview 中,当我点击红色时,onclick 侦听器没有重叠,只有 onclick2 被触发,当我点击整个卡片时,onclick1 被触发

感谢您在这方面的任何指示或帮助

代码片段:

mRecyclerApps.addOnItemTouchListener(
                new RecyclerItemClickListener(context, new RecyclerItemClickListener.OnItemClickListener() {
                    @Override public void onItemClick(View view, int position) {
                        startActivity(context.getPackageManager().getLaunchIntentForPackage(installedApps.get(position).getPackageName() ));
                    }
                })
        );

适配器中的红色区域 onTouchListener

 holder._appInfo.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                Toast.makeText(_ctx, "info button Clicked for " + position, Toast.LENGTH_LONG).show();
                return false;
            }
        });

使用 onClickListener 也无济于事,给出相同的输出

holder._appInfo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(_ctx, "info button Clicked for " + position, Toast.LENGTH_LONG).show();
            }
        });

你做错了,你不能添加itemtouchlistener和内部子触摸,你需要做的就是让那个视图触摸,和子触摸

//parent touch event
holder.main_view.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            // parent touch login
            return false;
        }
    });
//child touch event
holder._appInfo.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            Toast.makeText(_ctx, "info button Clicked for " + position, Toast.LENGTH_LONG).show();
            return false;
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM