【问题标题】:setOnClickListener doesn't work for Image Slider in KotlinsetOnClickListener 不适用于 Kotlin 中的图像滑块
【发布时间】:2021-09-18 19:46:48
【问题描述】:

我一直在尝试为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() 方法中。它不显示吐司消息。哪里错了?

    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()
    
            }
}

【问题讨论】:

  • 你能在发生这种情况的地方添加片段/活动的完整代码吗?
  • 问题已更新,请查看。我在DetailsActivity.ktonCreate() 方法中有更多的代码行。 onCreate 中的代码对其没有任何影响,我已经删除了这些代码(在 onCreate 中)并检查了它是否有效。

标签: android kotlin onclicklistener androidimageslider


【解决方案1】:

我认为您必须在 imageSlider 中添加 setItemOnClickListener 方法。 将此代码添加到您的 onCreate imageSlide.setItemOnClickListener()

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      这给了我一段时间的问题。我担心的是图像滑块(不是特定图像)上的点击监听器。我通过使用 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 监听器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-29
        • 1970-01-01
        • 2023-04-05
        相关资源
        最近更新 更多