【问题标题】:SwipeFlingAdapterView can't swipe when I set onClick listener to a child view当我将 onClick 侦听器设置为子视图时,SwipeFlingAdapterView 无法滑动
【发布时间】:2016-11-03 08:11:44
【问题描述】:

我很难找到正确的答案,所以我将尝试更详细地解释我的问题。

所以,我有一些带有 SwipeFlingAdapterView 的火种应用程序。在这里面,我有一个适配器,中间有一些文本视图和图像视图。我需要启用单击该图像以打开产品详细信息,但是当我将 onClick 侦听器附加到它时,我无法在该图像视图上滑动拖动手指。仅当我开始拖到 imageview 之外时。

这是我的 TinderAdapter 中的 ViewHolder:

private static class ViewHolder {

    ImageView image;
    TextView textViewTitle;
    TextView textViewSubtitle;
    OnTinderItemClickListener mListener;

    public ViewHolder(OnTinderItemClickListener listener) {
        this.mListener = listener;
    }
}

这是来自 Adapter 的 getView 方法:

ViewHolder viewHolder;

    if (convertView == null) {
        viewHolder = new ViewHolder(mListener);
        convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item_wishlist_tinder, parent, false);

        viewHolder.image = (ImageView) convertView.findViewById(R.id.list_item_image);
        viewHolder.textViewTitle = (TextView) convertView.findViewById(R.id.list_item_title);
        viewHolder.textViewSubtitle = (TextView) convertView.findViewById(R.id.list_item_subtitle);
        convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();
    }

    final FeedItem item = mData.get(position);

    viewHolder.textViewTitle.setText(item.getTitle());
    viewHolder.textViewSubtitle.setText(item.getDetail());
    viewHolder.image.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mListener.onItemClick(item);
        }
    });

所以,这个 onClick 监听器给我带来了麻烦。有什么想法可以解决这个问题吗?

【问题讨论】:

  • 尝试在主活动中设置点击
  • 我可以在全视图寻呼机上设置监听器,但我只需要在这个图像视图上使用它
  • 你也可以使用这个库,为我工作:github.com/aaronbond/Swipe-Deck
  • Tnx!但由于我没有那么多时间来实现和测试这个,我必须找到一种方法来即兴发挥这个实现......
  • 在xml本身设置onclick,在activity中调用方法即可

标签: android android-viewpager onclicklistener baseadapter


【解决方案1】:

ImageView 消耗了触摸事件,你必须重写它的 onTouchEvent

【讨论】:

  • 所以我应该设置为触摸而不是点击还是?
  • 但是无论我使用什么运动事件,我都会遇到同样的问题。你有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多