AdapterViewFlipper 添加item点击事件
Posted 威威dett
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AdapterViewFlipper 添加item点击事件相关的知识,希望对你有一定的参考价值。
AdapterViewFlipper 添加item点击事件
使用AdapterViewFlipper
实现广告滚动功能,在使用setOnItemClickListener
时无法接收回调。
原因
由于在其父类AdapterViewAnimator
中重写了onTouchEvent
函数,但是在MotionEvent.ACTION_DOWN
时返回值一直是false
,导致
onTouchEvent
函数中的MotionEvent.ACTION_UP
,无法回调,从而无法回调OnItemClickListener
。因此要想使回调生效,只需重写onTouchEvent
函数,并返回true
即可
修改后的源码
只需继承AdapterViewFlipper
并修改onTouchEvent
的返回值即可
public class AdapterViewFlipper2 extends AdapterViewFlipper
public AdapterViewFlipper2(Context context)
super(context);
public AdapterViewFlipper2(Context context, AttributeSet attrs)
super(context, attrs);
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public AdapterViewFlipper2(Context context, AttributeSet attrs, int defStyleAttr)
super(context, attrs, defStyleAttr);
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public AdapterViewFlipper2(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
super(context, attrs, defStyleAttr, defStyleRes);
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouchEvent(MotionEvent ev)
super.onTouchEvent(ev);
return true; // 修改的地方
在xml中引用我们自定义的AdapterViewFlipper2
,对其设置点击事件即可
mViewFlipper.setOnItemClickListener(new AdapterView.OnItemClickListener()
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
// 响应点击事件
);
以上是关于AdapterViewFlipper 添加item点击事件的主要内容,如果未能解决你的问题,请参考以下文章
Android零基础入门第49节:AdapterViewFlipper图片轮播
FMX TListView 动态添加Item和Item里面的Object