zhpanvip / BannerViewPager

🚀 An awesome banner view for Android,Based on ViewPager2. 这可能是全网最好用的ViewPager轮播图。简单、高效,一行代码实现循环轮播,一屏三页任意变,指示器样式任你挑。
Apache License 2.0
3.54k stars 434 forks source link

Activity 中指示器 indicator 圆点不显示 #301

Closed 24suixinsuoyu closed 1 year ago

24suixinsuoyu commented 1 year ago

参考项目中 initHorizontalBanner()initVerticalBanner() 代码设置 BannerViewPager。结果 indicator 圆点不显示

代码如下:

private void initBanner() {
        int normalWidth = getResources().getDimensionPixelOffset(R.dimen.dp_6);
        int checkedWidth = getResources().getDimensionPixelOffset(R.dimen.dp_12);
        int normalColor = ContextCompat.getColor(this, R.color.color_1A000000);
        int checkedColor = ContextCompat.getColor(this, R.color.color_4D000000);
        mBannerViewPager.setAutoPlay(true)
                .setInterval(3000)
                .setScrollDuration(500)
                .setOffScreenPageLimit(2)
                .setRoundCorner(R.dimen.dp_12)
                .setIndicatorSliderGap(R.dimen.dp_4)
                .setIndicatorView(mIndicatorView)
                .setIndicatorVisibility(View.VISIBLE)
                .stopLoopWhenDetachedFromWindow(true)
                .disallowParentInterceptDownEvent(true)
                .setIndicatorGravity(IndicatorGravity.END)
                .registerLifecycleObserver((getLifecycle()))
                .setIndicatorStyle(IndicatorStyle.ROUND_RECT)
                .setIndicatorSlideMode(IndicatorSlideMode.SCALE)
                .setOrientation(ViewPager2.ORIENTATION_HORIZONTAL)
                .setIndicatorSliderWidth(normalWidth, checkedWidth)
                .setIndicatorSliderColor(normalColor, checkedColor)
                .setOnPageClickListener(this::onPageClicked)
                .registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
                    @Override
                    public void onPageSelected(int position) {
                        super.onPageSelected(position);
                        BannerBean bannerBean = mBannerViewPager.getData().get(position);
                        mTvBannerTitle.setText(bannerBean.getSpaceName());
                    }
                }).setAdapter(mBannerAdapter).create();
    }
24suixinsuoyu commented 1 year ago

去掉 setIndicatorSliderGap() 这行代码就可以 show 出来了

zhpanvip commented 1 year ago

setIndicatorSliderGap 你为什么设置的是一个 dimen 的引用值?这里应该是一个px的宽度

24suixinsuoyu commented 1 year ago

setIndicatorSliderGap 你为什么设置的是一个 dimen 的引用值?这里应该是一个px的宽度

额,我眼拙了。。setRoundCorner() 亦然。