razerdp / PhotoContents

// 一个适用于AbsListView或者RecyclerView的仿朋友圈九宫格控件,针对View的复用做了二次缓存,减少创建View次数和减少measure/layout次数。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

点击事件冲突

0xhyperdan opened this issue · comments

如果列表的item有点击事件。点击整个item的时候 PhotoContents中所有的FoucsClickImageView都会触发前景的点击 整体闪一下。

好的,我今晚看看

嗯,我把列表的Item点击事件用onTouch替代了。

昨晚看了一下,事实上跟photocontents无关,是FoucsClickImageView的state被改变了,也就是说点击item的时候把事件都传递了下去,然而很奇怪的是,如果我设置了imageview需要在focued时才触发前景色的变化,却发现永远无法获取焦点。。。

所以迟点我打算把imageview不用drawable,而是采取touch+colorFliter的方式。

嗯 就是 FoucsClickImageView 我暂时把list的点击事件改成了。onTouch

ya,你也可以提交一下你的解决方案哦-V- 我现在还在组件化朋友圈的项目,所以这边暂时可能不会提交。

private long pressTime = 0;

@Override
public boolean onTouch(View v, MotionEvent event) {
  long upTime;
  switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
      pressTime = System.currentTimeMillis();
      break;
    case MotionEvent.ACTION_UP:
      upTime = System.currentTimeMillis();
      if ((upTime - pressTime) < 200) {
        if (listener != null) {
          listener.onItemClick(mList.get(getAdapterPosition()));
        }
      }
      break;
  }
  return true;
}

}

ViewHolder(View itemView) {
  super(itemView);
  ButterKnife.bind(this, itemView);
  itemView.setOnTouchListener(this);
  mPhotos.setmOnItemClickListener(this);
}

这算是解决方案么

好的,看起来你这个是从时机应用场景里入手呢,我打算是从库着手(准确说是FoucsClickImageView控件),刚刚把朋友圈项目组件化更新了一下,可以闲下来搞这边的了-V-