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"

    /> 
4

3 に答える 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

于 2015-01-08T15:08:21.343 に答える
1

使用する

Viewpager.setCurrentItem(pageNo)

クリックすると

于 2013-05-24T07:03:15.983 に答える
0

ボタンのonclickリスナー内でそれを行うことができます.Like、

ViewPager.setCurrentItem(0); //here I set first page
于 2013-05-24T07:03:06.707 に答える