[英]Set CirclePageIndicator on Viewpager in android
我在分頁器上有4頁。 我只想在第1頁,第2頁,第3頁顯示3 CirclePageIndicator。第4頁不顯示CirclePageIndicator。
mString1 = new int[]{R.string.text_guide_1, R.string.text_guide_2, R.string.text_guide_3, R.string.text_guide_10};
mString2 = new int[]{R.string.text_guide_4, R.string.text_guide_5, R.string.text_guide_6, R.string.text_guide_11};
mString3 = new int[]{R.string.text_guide_7, R.string.text_guide_8, R.string.text_guide_9, R.string.text_guide_12};
GuideAdapter adapter = new GuideAdapter(this, getContext(), mString1, mString2, mString3, this);
mPager.setAdapter(adapter);
mPager.addOnPageChangeListener(onPageChangeListener);
mCirclePageIndicator.setRadius(18);
mCirclePageIndicator.setPageColor(getContext().getResources().getColor(android.R.color.white));
mCirclePageIndicator.setFillColor(getContext().getResources().getColor(android.R.color.black));
mCirclePageIndicator.setVisibility(View.VISIBLE);
mCirclePageIndicator.setViewPager(mPager);
我的代碼。 它在Viewpager上顯示所有CirclePageIndicator。 請。 幫我!
文件適配器
public class GuideAdapter extends PagerAdapter {
private LayoutInflater mInflater;
private int[] mListString1;
private int[] mListString2;
private int[] mListString3;
private Context mContext;
private CustomDialog customDialog;
public GuideAdapter(CustomDialog customDialog, Context mContext, int[] mString1, int[] mString2, int[] mString3,PageClickListener callback) {
this.customDialog = customDialog;
this.mListString1 = mString1;
this.mListString2 = mString2;
this.mListString3 = mString3;
this.mContext = mContext;
mCallback = callback;
}
public interface PageClickListener {
void onPageClick(int id);
}
private PageClickListener mCallback;
@Override
public int getCount() {
return mListString1.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
@Override
public Object instantiateItem(ViewGroup container, final int position) {
mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View imageLayout = mInflater.inflate(R.layout.item_guide, container, false);
assert imageLayout != null;
TextView text_1 = (TextView) imageLayout.findViewById(R.id.text_1);
TextView text_2 = (TextView) imageLayout.findViewById(R.id.text_2);
TextView text_3 = (TextView) imageLayout.findViewById(R.id.text_3);
text_1.setText(mListString1[position]);
text_2.setText(mListString2[position]);
text_3.setText(mListString3[position]);
text_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mCallback.onPageClick(position);
}
});
text_2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mCallback.onPageClick(position);
}
});
text_3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mCallback.onPageClick(position);
}
});
container.addView(imageLayout, 0);
return imageLayout;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((View) object);
}
請。 幫我!
覆蓋setOnPageChangeListener,並在最后一頁中隱藏circleIndicator。
mPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float arg1, int arg2) {
if(position > 2) {
//hide indicator
} else if(position < 2) {
//visible indicator
}
.
.
.
而不是添加onPageListener。 只需讓您的類實現ONpagechangelistener,然后使用一個字段來更新當前位置,然后在每次更新時檢查是否已更新位置等於數組長度(如果它只是忽略了circlepageindicator)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.