实现滚动文本视图需要做以下步骤:
在 XML 布局文件中定义 TextView,设置其属性以适应需要的大小和样式。
将 TextView 封装到 ScrollView 控件中,这样可以在 TextView 中包含大量文本而不会影响整个布局。
为 TextView 创建自定义 Kotlin 类,该类将实现一个可滚动视图,使 TextView 可以滚动并显示全部内容。
下面是实现此功能的代码示例:
在 XML 布局中,使用 ScrollView 包含 TextView,如下所示:
在 Kotlin 类中创建 TextView 滚动函数,如下所示:
class AutoScrollTextView(context: Context, attrs: AttributeSet) : TextView(context, attrs) {
private var mScroller: Scroller? = null
private var mYScroll: Int = 0
init {
mScroller = Scroller(context)
}
override fun computeScroll() {
if (mScroller!!.computeScrollOffset()) {
scrollTo(0, mScroller!!.currY)
postInvalidate()
}
}
fun setTextAndView() {
this.postDelayed(Runnable {
mYScroll = 0
mScroller!!.startScroll(0, 0, 0, this.lineHeight * this.lineCount, 25000)
invalidate()
}, 200)
}
}
在主活动文件中实例化自定义视图类并调用 setTextAndView 函数:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//获取 TextView
val myTextView = findViewById(R.id.my_text_view)