setOnClickListener 不适用于 Kotlin 中的图像滑块

setOnClickListener doesn't work for Image Slider in Kotlin

我一直在尝试为 com.denzcoskun.imageslider.ImageSlider 设置点击侦听器,但它不起作用。 图像滑块工作完美,它显示幻灯片。唯一的问题是它没有被点击。

按照图像滑块的 XML 代码。

            <com.denzcoskun.imageslider.ImageSlider
                android:id="@+id/image_slider"
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:clickable="true"
                android:focusable="true"
                android:minHeight="@dimen/item_dashboard_image_height"
                app:iss_auto_cycle="true"
                app:iss_corner_radius="5"
                app:iss_delay="0"
                app:iss_error_image="@color/colorDarkGrey"
                app:iss_period="2500"
                app:iss_placeholder="@color/colorDarkGrey"
                app:iss_selected_dot="@drawable/default_selected_dot"
                app:iss_unselected_dot="@drawable/default_unselected_dot"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

以下是 Kotlin 代码。这是在我的 onCreate() 方法中。它不显示 toast 消息。哪里错了?

    class DetailsActivity : BaseActivity(), View.OnClickListener {
    
    override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
    
            binding = ActivityProductDetailsBinding.inflate(layoutInflater)
            setContentView(binding.root)
    
            binding.imageSlider.setOnClickListener {
    
                Toast.makeText(this,"clicked",Toast.LENGTH_SHORT).show()
    
            }
}

我认为您必须在图像滑块中添加 setItem OnClickListener 方法。 在您的 onCreate 中添加此代码 imageSlide.setItemOnClickListener()

问题是我在 onCreate() 中使用了 clickListener。解决方案是我必须在绑定数据后使用 ClickListener 而不是在 onCreate() 方法中使用它。它现在工作正常。

这让我困扰了一段时间。我担心的是图像滑块(不是特定图像)上的点击监听器。我通过使用 CoordinatorLayout 在图像滑块顶部设置一个透明按钮来解决它。

<androidx.coordinatorlayout.widget.CoordinatorLayout
                    android:layout_width="match_parent"
                    android:layout_height="180dp">

                    <com.denzcoskun.imageslider.ImageSlider
                        android:layout_width="match_parent"
                        android:layout_height="200dp"
                        app:iss_auto_cycle="true"
                        app:iss_period="3300"
                        app:iss_delay="0"
                        android:id="@+id/image_slider"/>

                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:background="@android:color/transparent"
                        android:id="@+id/button_trans"/>
                </androidx.coordinatorlayout.widget.CoordinatorLayout>

然后我为按钮设置了一个 onclick 侦听器。