Onclick on view pager in android does not work in my code

I implemented a pager view in my code, and I put it on click on the pager, but my listener does not work, I will lay out my code

viewpager.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Log.i("***","***"); Toast.makeText(getActivity(), "XXXX", Toast.LENGTH_SHORT).show(); } }); 
+8
android view android-viewpager
source share
3 answers

Use the clicklistener inside the ViewPager element. This does not work because Child of ViewPager intercepts a parent event (e.g. ViewPager). EG, if you add an ImageView inside the ViewPager using the PagerAdapter, then use the ImageView click to make it simple.

+6
source share

I have implemented a custom ViewPager :

 public class ClickableViewPager extends ViewPager { private OnClickListener mOnClickListener; public ClickableViewPager(Context context) { super(context); setup(); } public ClickableViewPager(Context context, AttributeSet attrs) { super(context, attrs); setup(); } private void setup() { final GestureDetector tapGestureDetector = new GestureDetector(getContext(), new TapGestureListener()); setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { tapGestureDetector.onTouchEvent(event); return false; } }); } public void setOnViewPagerClickListener(OnClickListener onClickListener) { mOnClickListener = onClickListener; } public interface OnClickListener { void onViewPagerClick(ViewPager viewPager); } private class TapGestureListener extends GestureDetector.SimpleOnGestureListener { @Override public boolean onSingleTapConfirmed(MotionEvent e) { if(mOnClickListener != null) { mOnClickListener.onViewPagerClick(ClickableViewPager.this); } return true; } } } 

And an example implementation of onClickListener :

 ClickableViewPager viewPager = (ClickableViewPager) findViewById(R.id.viewPager); mViewPager.setOnViewPagerClickListener(new ClickableViewPager.OnClickListener() { @Override public void onViewPagerClick(ViewPager viewPager) { //yourCode } }); 
+7
source share

There is no onClick listener in ViewPager. You can use the same effect using Recyclerview instead of ViewPager, as shown below.

 <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view_scroll_page" android:layout_width="wrap_content" android:layout_height="250dp" android:orientation="horizontal" app:layoutManager="android.support.v7.widget.LinearLayoutManager"/> 

Using Recycliewiew as horizontal, you can scroll it and receive click events. Please note that use RecyclerView.Adapter

0
source share

All Articles