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
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);
}
});
}
}