这似乎是一个常见问题,但事实并非如此。因此,我想在单击recyclerview时执行一种方法。我与recyclerview项目无关。我希望该应用识别出屏幕轻触以实现方法。
代码如下:
xml
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9"
android:id="@+id/rl">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:divider="@null"
android:paddingTop="8dp"
android:visibility="visible"
/>
</RelativeLayout>
Java
mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
mRecyclerView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,"sent",Toast.LENGTH_SHORT).show();
}
});
现在,点击recyclerview区域时,吐司不显示。
答案 0 :(得分:0)
我想您会执行onItemClick,但是对所有项目执行相同的操作。因此,如果您单击recyclerview的区域,那么您肯定会单击其中一项。因此,只需为任何onItem调用一个方法
答案 1 :(得分:0)
您可以使用以下内容:
mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
Toast.makeText(MainActivity.this,"sent",Toast.LENGTH_SHORT).show();
return false;
}
@Override
public void onTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
});