Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to implement on icon click listener in IconPageIndicator

I am using IconPageIndicator from viewPagerIndicator library. when an icon is clicked in the indicator i need the the view pager to move to that page.how can i get the event click when the icon is clicked? how can a know which icon is clicked in the IconPageIndicator?

like image 810
null pointer Avatar asked Oct 28 '13 07:10

null pointer


1 Answers

I have read your question and test sample example.you are right It can't move when we click on icons.

so you need to edit library project ---> IconPageIndicator.java

just replace the below method

public void notifyDataSetChanged() 
{
    mIconsLayout.removeAllViews();
    IconPagerAdapter iconAdapter = (IconPagerAdapter) mViewPager.getAdapter();
    int count = iconAdapter.getCount();
    for (int i = 0; i < count; i++) {
        ImageView view = new ImageView(getContext(), null, R.attr.vpiIconPageIndicatorStyle);
        view.setImageResource(iconAdapter.getIconResId(i));
        view.setTag(""+i);
        view.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                int viewPosition = Integer.parseInt(v.getTag().toString());

                mViewPager.setCurrentItem(viewPosition);
            }
        });
        mIconsLayout.addView(view);
    }
    if (mSelectedIndex > count) {
        mSelectedIndex = count - 1;
    }
    setCurrentItem(mSelectedIndex);
    requestLayout();
}

clean the library project and rebuild it.also don't forget to clean and rebuild your project.I hope it will work.

like image 63
TheFlash Avatar answered Oct 14 '22 22:10

TheFlash