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图片轮播

请问如何在listview删除item时添加动画效果呢?

FMX TListView 动态添加Item和Item里面的Object

delphi如何向combobox的items里添加内容?

zabbix利用api批量添加item,并且批量配置添加graph

Zabbix实战-简易教程--添加item