Tag: kotlin

Android NestedScrollView.smoothScrollBy()滚动太多

我有以下Kotlin代码: val scrollView = parent as? NestedScrollView scrollView?.let { it.smoothScrollTo(0, 500) } 这个代码第一次被调用的时候,滚动视图scrollY是0,并且它在y中成功的滚动了视图500。 但是,当这被称为第二次时,它将滚动另一个500(而不是在y中将其滚动到500,现在将是1000,以此类推,以便连续呼叫。 任何想法发生了什么? 当我深入研究NestedScrollView的代码(并最终进入OverScroller’s startScroll方法,最终被调用的时候,我可以看到在y轴上该调用的distance参数是0 – 因为它应该是除了第一个代码被调用)。 编辑:重要信息 – 我试图用ScrollView而不是一个NestedScrollView ,它按预期工作,但是因为我的ScrollView需要在一个SwipeRefreshLayout我需要它是一个NestedScrollView否则拉下总是刷新而不是滚动。

无法运行jar文件。 (错误:无法find或加载主类co.pissarra.Mainkt)

我正在尝试使用spark和kotlin创建一个小型web服务器。 但是我被卡在了应该能够创建项目的jar并从命令行运行的步骤中。 但是在运行java -jar pissarra-core-all-1.0-SNAPSHOT.jar出现以下错误 Error: Could not find or load main class co.pissarra.Mainkt 我尝试使用intellij想法的工件创建没有成功,并转移到使用build.gradle创建jar。 以下是相同的代码 task fatJar(type: Jar) { manifest { attributes ‘Implementation-Version’: version, ‘Main-Class’: ‘co.pissarra.Mainkt’ } baseName = project.name + ‘-all’ from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } with jar } 在运行./gradlew clean之后./gradlew fatJar ,我可以在build/libs/目录下创建jar文件。 这个jar也给出了同样的错误。 在提取jar文件的时候,我可以看到目录结构co/pissarra/里面有Mainkt.class文件。 它也有META-INF目录和MANIFEST.MF文件,其内容如下 Manifest-Version: […]

如何在Enum常量中实现抽象函数

我想要实现的是一个简单的模式,我正在使用Java,并应根据文档在Kotlin中可行。 我只是想用一些实现相同抽象函数的常量定义来声明一个枚举类。 我的问题是,我无法设法让我的代码编译。 我总是得到相同的错误: modifier abstract not allowed here 这里是代码: enum class Program { HOME { override fun readableName(context: Context): String { return context.getString(R.string.program_home) } }, WEEKEND { override fun readableName(context: Context): String { return context.getString(R.string.program_weekend) } }, SHOPPING { override fun readableName(context: Context): String { return context.getString(R.string.program_shopping) } }; abstract fun readableName(context: Context): String […]

Android工作室插件ID:’kotlin-android-extensions’

我正在使用gradle,并且正在尝试将kotlin添加到我的项目中。 但是当我试图为gradle添加“kotlin-android-extensions”插件时,它无法find它。

如何在RxJava2中用重试运算符记住状态

我有一个网络客户端,可以从中断恢复,但需要最后一条消息时,这样做是在重试。 Kotlin示例: fun requestOrResume(last: Message? = null): Flowable = Flowable.create({ emitter -> val connection = if (last != null) client.start() else client.resumeFrom(last.id) while (!emitter.isDisposed) { val msg = connection.nextMessage() emitter.onNext(msg) } }, BackpressureStrategy.MISSING) requestOrResume() .retryWhen { it.flatMap { Flowable.timer(5, SECONDS) } } // how to pass the resume data when there is a retry? 问题 […]

返回值没有设置

我对Kotlin \ Android非常陌生,所以这可能是一个明显的错误,但我被卡住了,需要一些帮助。 我正在做的是让用户输入他们的名字,采取这个名字,并检查一个MySQL数据库(这工作正常),然后根据他们的授权级别返回0或1,这是我遇到的问题用。 我已经尝试使用返回,创建一个全局类,添加到一个可变的列表并设置它,但没有任何工作。 在主要我有这个。 var useName:String = editText.text.toString() verifiedID = verifyUser(useName) //Call the function here // verifiedID = Global.validLogin //Was used to test Global class ET_HelloW.setText(“$useName ID $verifiedID”) 在validation用户类中 var ucounter = 0 fun verifyUser(userName: String) :Int { //getting the record values val userName = userName var uname: String = “” var uauth: […]

我可以更新深层嵌套的不可变对象,而不必知道它的上下文吗?

让我们想象我有一个嵌套的不可变对象图,沿着这些线(使用Kotlin语法,但希望很清楚): data class House(val bedroom: Bedroom, val bathroom: Bathroom, val kitchen: Kitchen) class Bedroom class Bathroom data class Kitchen(val oven: Oven, val kettle: Kettle) class Oven data class Kettle(val on: Boolean) var house = House(Bedroom(), Bathroom(), Kitchen(Oven(), Kettle(false))) 现在,我想打开水壶。 如果对象是可变的,我只会写: data class Kettle(var on: Boolean) { fun activate() { this.on = true } } house.kitchen.kettle.activate() […]

ojAlgo – 连续块逻辑的优化问题?

我正在使用ojAlgo来解决作为练习的课堂安排问题。 源代码可以在kotlin_solution文件夹的GitHub上find: https://github.com/thomasnield/optimized-scheduling-demo 一切都很顺利,直到我开始实施在Math Exchange上描述的连续块逻辑。 基本上,如果一个课程需要4个模块,那么这4个模块需要在一起。 出于某种原因,当我在这部分代码中实现连续逻辑时,这个建模逻辑会尖叫一声。 无限的搅动 这里是完整的Kotlin代码: import org.ojalgo.optimisation.ExpressionsBasedModel import org.ojalgo.optimisation.Variable import java.time.DayOfWeek import java.time.LocalDate import java.time.LocalDateTime import java.time.LocalTime import java.util.concurrent.atomic.AtomicInteger // declare model val model = ExpressionsBasedModel() val funcId = AtomicInteger(0) val variableId = AtomicInteger(0) fun variable() = Variable(variableId.incrementAndGet().toString().let { “Variable$it” }).apply(model::addVariable) fun addExpression() = funcId.incrementAndGet().let { “Func$it”}.let { model.addExpression(it) } // […]

在哪里/如何为Kotlin软件包添加文档?

在Java中,如果你想记录一个包,它必须放在package-info.class文件中。 Kotlin和KDoc仍然是一样的吗? 我已经浏览了Kotlin的一些源代码,并且找不到它们的包文档在哪里编写。

如何在Kotlin中实例化对象?

我正在尝试创建一个像这样的Fade对象 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val fade: Fade trans.setOnClickListener(View.OnClickListener { fade.setDuration(5000) }) 但它给了我一个错误, `variable fade must be initialized` 如何初始化像Fade fade= new Fade()在kotlinvariables?