应该可以同时在自定义listview中使用listview setOnItemClickListener和edittext可编辑

时间:2018-07-06 05:29:56

标签: android listview android-edittext onclicklistener

问题:如果我设置了android:focusable="false"android:focusableInTouchMode="false"到列表项editTexview,则editText无法聚焦,如果我删除了这2行代码listView { {1}}不起作用。我的要求是同时工作。

我的自定义列表项XML

setOnItemClickListener

1 个答案:

答案 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;
            }
        }
    });