这可能是一个基本问题,或者我可能使我的项目远远超出了我的能力,但我确实可以在这方面使用帮助,这花费了我数小时的搜索和尝试其他人的代码。
我的活动包括使用 ViewPager2 的三个片段,我将它们称为片段 A、B 和 C。其中,片段 B 将加载另一个未指定数量的片段。我将其称为片段 X1、X2...可能是 X99 左右。这些片段是使用打字机效果的地方,所以我将文本动画功能放在片段 B 上,因为我认为最好在加载片段的位置而不是每个片段 Xn 都有它。
fun TextView.textDisplay(text: Int) {
val targetstring: Int = text
if(textanim) {
for(i in 1..targetstring){
println(targetstring.toString()[i])
Thread.sleep(textanimspeed.toLong())
} // Typewriter effect
} else {
println(targetstring)
} // display texts at once
}
Run Code Online (Sandbox Code Playgroud)
片段 B 中还有一些值,我计划使用它们来设置文本的大小、动画速度以及是否动画。
var textsize:Byte = 10
var textanimspeed:Byte = 100
var textanim: Boolean = true
Run Code Online (Sandbox Code Playgroud)
然后尝试加载Fragment X1。
(activity as FragmentB).TextView1.textDisplay(R.string.stringX1)
Run Code Online (Sandbox Code Playgroud)
事实证明,这行代码无法访问,并且“textDisplay”是“未解析的引用”。
如果我删除 textDisplay(text: Int) 的接收器参数“TextView”并且执行代码 Android studio 不会说它未解决,但它仍然无法访问。最重要的是,我相信文本必须在 TextView 内进行动画处理。运行该应用程序不会向我显示任何文本。
我尝试的第二件事是复制打字机效果的 Java …