onClick on ViewPager not triggered

后端 未结 8 1178
有刺的猬
有刺的猬 2020-11-28 04:49

I set a click listener on a ViewPager, but the onClick event is never called. I guess the touch event detection of the ViewPager is interfering, bu

8条回答
  •  渐次进展
    2020-11-28 05:42

    Make sure that one of the unintended views inside the page is not consuming click event. I had an issue where android:clickable was true on the image view and I could not get click event from its parent. After removing that android:clickable from image view, the click events are sent to its parent (BannerView) now. See the example code

    public ViewPagerAdapter extends PagerAdapter {
    ...
    
    public Object instantiateItem (ViewGroup container, int position) {
    
        MyItem item = this.myItems.get(position);
    
        BannerView bannerView = new BannerView(container.getContext());
        ImageView imageView = (ImageView) bannerView.findViewById(R.id.header_image);
    
        this.setupClickListener(bannerView, position);
    
         container.addView(bannerView);
         return bannerView;
    }
    
    private void setupClickListener(final BannerView view, final int position) {
    
        view.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
    
                   // Page is clicked!
                   MyItem item = ViewPagerAdapter.this.myItems.get(position);
                   ViewPagerAdapter.this.showNextActivity(view.getContext(), item);               
                }
         });
    
    }
    

    }

提交回复
热议问题