【问题标题】:Long press function in kotlinkotlin 中的长按功能
【发布时间】:2019-03-29 05:30:26
【问题描述】:

当我意识到它应该是正常的时,我正在尝试转换 gif。下面是 Kotlin 中的代码。我曾尝试使用长按,但当我释放时,它不会返回图像。

var walk1: ImageView?=null
var walk2: ImageView?=null
 walk1=findViewById(R.id.walky)
        walk2=findViewById(R.id.walky1)

        walk1?.setOnLongClickListener { walk2?.visibility = View.VISIBLE
           walk2?.setOnClickListener(){ walk2?.visibility=View.GONE
              return@setOnTouchListener true`enter code here`
           }
            return@setOnLongClickListener true

        }

【问题讨论】:

  • 请格式化您的代码并解释您的问题(问题标题和内容)更详细,然后我们可以帮助您。目前我想大多数人不知道你的问题是什么,你想拥有什么

标签: android kotlin ontouchlistener onlongclicklistener


【解决方案1】:

编辑:

你的问题是问两件事。 一个是关于OnLongClickListener,我在下面通过原始答案回答。

另一个是关于显示gif的,需要用到图片库,命名为Glide

阅读:
https://stackoverflow.com/a/44493206/850347

首先,将此代码添加到您的app/build.gradle

repositories {
  mavenCentral()
  google()
}

dependencies {
  implementation 'com.github.bumptech.glide:glide:4.9.0'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
}

然后,同步您的 gradle。编辑build.gradle 文件后,您可以看到通知栏(屏幕顶部)。

接下来,将此代码添加到您的 kotlin 文件中。将 R.raw.image_gif 更改为您的 gif 文件名。

Glide.with(this).asGif().load(R.raw.image_gif).into(walk1);

原文:

您将LongClickListener 设置为walk1,并将ClickListener 设置为walk2

这种情况下,需要关注LongClickListener的返回值。

几乎所有与事件相关的方法,return true 的意思是“我想消费事件,不希望它传播。这一点是事件的结束。” return false 表示“我只想处理我的事件,并且该事件将传播到它的父视图(或子视图)”

kotlin 方法的最后一行(需要返回)表示“返回”。所以在这段代码中,false 等价于return false

val walk1: ImageView = findViewById(R.id.walky)
val walk2: ImageView = findViewById(R.id.walky1)

walk1.setOnLongClickListener {
    walk2.visibility = View.VISIBLE
    false // Don't consume event, if return false. Consume event if true.
}

walk2.setOnClickListener {
    walk2.visibility = View.GONE
}

【讨论】:

  • 它不工作!!。当我点击长按它显示第二个walk2但是当我意识到按钮它没有显示walk1时。
  • 你的目标是什么?同时显示两个 ImageView?
  • 然后,添加在“false”行上方显示您的视图的代码。
  • 当我点击该按钮时,我应该显示 gif,当实现按钮时,它应该显示正常图片,在上面的代码中 walk1 是正常的,walk2 是 gif 代码
  • @rohit palankar 哦,你需要使用 glide 库。 ImageView 不支持 gif。阅读这个:github.com/bumptech/glide 这个stackoverflow.com/a/44493206/850347
猜你喜欢
  • 2016-06-03
  • 2021-11-07
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 1970-01-01
  • 2021-06-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多