根据viewpagerindicator图标的点击事件更改viewpager项目

3

我正在使用Viewpager和viewpagerindicator来显示一些内容。目前,如果我们滑动指示器,所选项目将更改。但我想要相反的效果,即当我点击圆圈时,需要更改viewpager项目。

以下是代码:

 <android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    />
<com.viewpagerindicator.CirclePageIndicator
    android:id="@+id/indicator"
    android:padding="10dip"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    app:fillColor="#FFCC0000"
    app:snap="true"

    /> 
3个回答

1

你需要修改相应类的源代码,比如这是我修改过的IconPageIndicator

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

        //custom bigger indicator
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
        view.setLayoutParams(layoutParams);

        //custom onClick
        view.setTag(""+i);
        view.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                int pos = Integer.parseInt(v.getTag().toString());
                mViewPager.setCurrentItem(pos);
            }
        });

        mIconsLayout.addView(view);
    } 

许多感谢来源:

https://github.com/JakeWharton/Android-ViewPagerIndicator/pull/321/files


1

使用

Viewpager.setCurrentItem(pageNo)

点击时

但是我怎么获取那个特定圆形的点击事件? - nucleons
您需要查看pageIndicator文档以向其添加点击监听器。 - Yashwanth Kumar
@YashwanthKumar,你能否回答一下这个问题:http://stackoverflow.com/questions/17370729/intercepting-touch-events-in-viewpagerindicator。我真的需要帮助。 - Manwal
@Manwal,请通过我的个人资料中的个人电子邮件与我联系,以获取确切的要求。这个问题不清楚你试图实现什么。 - Yashwanth Kumar
@YashwanthKumar,你的电子邮件地址是什么?我没有找到它。 - Manwal

0
你可以在一个按钮的onclick监听器中完成这个功能。例如:
ViewPager.setCurrentItem(0); //here I set first page

1
但是我如何获取该圆的点击事件? - nucleons
什么圆?你需要一个圆形按钮吗? - Basim Sherif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接