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 侦听器。
我一直在尝试为 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 侦听器。