Android 使用OnItemTouchListener查看可回收物品
盗梦空间的声音 这可能不是最好的主意,但这里有一张4秒钟的gif,显示了我正在尝试做什么以及遇到的问题 (对不起,不允许嵌入) 我有一个Android 使用OnItemTouchListener查看可回收物品,android,android-recyclerview,Android,Android Recyclerview,盗梦空间的声音 这可能不是最好的主意,但这里有一张4秒钟的gif,显示了我正在尝试做什么以及遇到的问题 (对不起,不允许嵌入) 我有一个RecyclerView,每个项目中都有一个LinearLayout和一个隐藏的LinearLayout和另一个RecyclerView。这样做的目的是,你可以看到类别,一旦你点击它,它就会展开显示相关的帖子。再次点击类别应打开类别详细信息页面,点击帖子应打开相关帖子详细信息页面 我让它工作,但正如你在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或其他内容。我觉得我的案子没那么不寻常。