问题:如果我设置了android:focusable="false"
,android:focusableInTouchMode="false"
到列表项editTexview
,则editText
无法聚焦,如果我删除了这2行代码listView
{ {1}}不起作用。我的要求是同时工作。
我的自定义列表项XML
setOnItemClickListener
答案 0 :(得分:0)
在适配器类中的单个项目的视图上设置onTouchlistener。另外,您还必须管理列表的状态,以便在滚动列表时应禁用onTouch,而在不滚动时,onTouch应该照常工作。在我的项目中,在回收者视图上工作正常。应该也可以与ListView一起使用。
itemView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if(!isScrolling)
{
Toast.makeText(mContext, "Item clicked ", Toast.LENGTH_SHORT).show();
}
return false;
}
});
并管理isScrolling标志,
rv.setOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if(newState == SCROLL_STATE_DRAGGING)
{
isScrolling=true;
}
else
{
isScrolling=false;
}
}
});