oubowu/PinnedSectionItemDecoration

onHeaderClick响应慢

Closed this issue · 6 comments

onHeaderClick点击响应明显比其他没有置顶悬浮的响应慢

我这边也是这样,点击响应明显比其他没有置顶悬浮的响应慢,你这边有解决方案吗

你们普通的item是直接设置点击事件的?还是通过itemtouchhelper

普通的直接设置点击事件 setOnClickListener 悬浮的是下面的
setHeaderClickListener(new OnHeaderClickListener() {
@OverRide
public void onHeaderClick(View view, int id, int position) {
}

` @OverRide
public boolean onSingleTapUp(MotionEvent e) {
Log.e(TAG, "GestureListener-81行-onSingleTapUp(): ");
shouldIntercept(e);

        return mIntercept;
    }

    @Override
    public boolean onSingleTapConfirmed(MotionEvent e) {
        Log.e(TAG, "GestureListener-113行-onSingleTapConfirmed(): ");

        if (!mDisableHeaderClick && mIntercept && mHeaderClickListener != null && mAdapter != null && mPosition <= mAdapter.getItemCount() - 1) {
            // 自己处理点击标签事件
            try {
                mHeaderClickListener.onHeaderClick(mTmpView, mTmpClickId, mPosition);
            } catch (IndexOutOfBoundsException e1) {
                e1.printStackTrace();
                // Log.e("TAG", "GestureListener-183行-onSingleTapConfirmed(): " + e1);
            }
        }

        return super.onSingleTapConfirmed(e);
    }`

原因在这里,头部事件处理使用GestureDetector来处理,双击和单击都会触发onSingleTapUp,所有单击的处理放到onSingleTapConfirmed处理,要不然放在onSingleTapUp做双击事件会触发单击的冲突了,所以会慢一点,我看下怎么优化吧

好的,辛苦了!

更新到1.3.0版本 我去掉了双击的头部监听了 单击事件速度跟普通item的点击事件一样了 以后双击的处理就是由宿主自己在头部单击回调那里自己处理连续点击的逻辑了 @fuguiniao @cwjfeifei