Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用OnItemTouchListener查看可回收物品_Android_Android Recyclerview - Fatal编程技术网

Android 使用OnItemTouchListener查看可回收物品

Android 使用OnItemTouchListener查看可回收物品,android,android-recyclerview,Android,Android Recyclerview,盗梦空间的声音 这可能不是最好的主意,但这里有一张4秒钟的gif,显示了我正在尝试做什么以及遇到的问题 (对不起,不允许嵌入) 我有一个RecyclerView,每个项目中都有一个LinearLayout和一个隐藏的LinearLayout和另一个RecyclerView。这样做的目的是,你可以看到类别,一旦你点击它,它就会展开显示相关的帖子。再次点击类别应打开类别详细信息页面,点击帖子应打开相关帖子详细信息页面 我让它工作,但正如你在gif中看到的,我必须至少点击两次,尽管我从来没有这样写过。

盗梦空间的声音

这可能不是最好的主意,但这里有一张4秒钟的gif,显示了我正在尝试做什么以及遇到的问题

(对不起,不允许嵌入)

我有一个
RecyclerView
,每个项目中都有一个
LinearLayout
和一个隐藏的
LinearLayout
和另一个
RecyclerView
。这样做的目的是,你可以看到类别,一旦你点击它,它就会展开显示相关的帖子。再次点击类别应打开类别详细信息页面,点击帖子应打开相关帖子详细信息页面

我让它工作,但正如你在gif中看到的,我必须至少点击两次,尽管我从来没有这样写过。LinearLayout的
onClickListener
也是如此,就像父级
RecyclerView
劫持第一次点击一样

这是我的代码的简图

    adapter.setOnItemTouchListener(new RecyclerItemListener.RecyclerTouchListener() {
        @Override
        public void onClickItem(View v, int position) {
            final LinearLayout postView = (LinearLayout) v.findViewById(R.id.profileCheckinDetailsView);
            // The IF statement prevents reloading the view when it is already open.
            if (postView.getVisibility()==View.GONE){
                RelativeLayout itemView = (RelativeLayout) v.findViewById(R.id.ItemView);
                itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
[... etc]
在它下面还有另一个
setonimtouchlistener
用于孩子
RecyclerView

我这样做对吗?如果是,如何确保两个项目都注册了第一次点击

提前谢谢

有时候,键入一个问题有助于你以不同的方式思考。我删除了top recyclerview的触控监听器,并用它替换了项目布局。两种布局都有自己的onClickListener。通过
((LinearLayout)v.getParent())
我设法让他们彼此控制


我相信这会更容易、更有效

你能包括你的点击监听器的其余部分吗?另外,您可能需要重新考虑在另一个单击侦听器中设置一个单击侦听器。我来这里就是为了重新考虑这个问题。我只是在寻找一个为什么不,哪种方式更好的答案。代码的其余部分除了打开一个新的活动外,什么都不做。我只是将我的示例粘贴在这里,以表明我没有意外地将其设置为OnItemDoubleTouchListener或其他内容。我觉得我的案子没那么不寻常。