提问者:小点点

如何使用com.glide.slider.library.sliderlayout自定义指示器样式?


我使用这个滑块有以下滑块布局:

                <com.glide.slider.library.SliderLayout
                    android:id="@+id/slider_product_image"
                    android:layout_width="500dp"
                    android:layout_height="350dp"/>
                <com.glide.slider.library.indicators.PagerIndicator
                    android:id="@+id/custom_indicator"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    app:selected_height="20dp"
                    app:selected_width="20dp"/>

下面是我用来设置它的代码:

            //Slider
            for (item in prod.images) {
                val sliderView = DefaultSliderView(context)

                // initialize SliderLayout
                sliderView
                    .image(item)
                    .setRequestOption(
                        RequestOptions()
                            .diskCacheStrategy(DiskCacheStrategy.ALL)
                            .skipMemoryCache(true)
                    )
                binding.sliderProductImage.addSlider(sliderView)
            }
            binding.sliderProductImage.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom)
            binding.sliderProductImage.stopCyclingWhenTouch(false)
            binding.sliderProductImage.stopAutoCycle()

滑块是基于这一个使用毕加索作为图像加载器。 原始滑块允许彻底的指示器自定义,可以在这里看到。 有一些可用的属性,如app:selected_heightapp:selected_width,它们应该设置选定项的指示器的高度和宽度,但它们对布局本身没有任何影响。 下面是我的结果的图像:

所选指示器的大小仍然相同。 我是不是漏掉了什么? 有没有方法恰当地应用这些呢?


共1个答案

匿名用户

发现我的错误。。。 在它的底部,它说您需要将它与一个SliderLayout实例绑定以使它工作:

binding.sliderProductImage.setCustomIndicator(custom_indicator as PagerIndicator)