Android:无法设置字幕
我无法在android中实现字幕文本视图 是的,这个问题与许多其他有关Marquee的问题类似。大部分我都读过。我试着用很多答案的方式实现Marquee。但我的代码仍然不起作用 请帮我解决这个问题。我什么都试过了。什么都没用 谢谢 XML代码:Android:无法设置字幕,android,xml,marquee,Android,Xml,Marquee,我无法在android中实现字幕文本视图 是的,这个问题与许多其他有关Marquee的问题类似。大部分我都读过。我试着用很多答案的方式实现Marquee。但我的代码仍然不起作用 请帮我解决这个问题。我什么都试过了。什么都没用 谢谢 XML代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:background="@color/mainBg"
tools:context=".MainActivity" >
<TextView android:layout_width="fill_parent"
android:id="@+id/marquee"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:lines="1"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:text="@string/home"
android:fontFamily="monospace"
android:textStyle="bold"
android:paddingBottom="20dp" />
</LinearLayout>
尝试将
android:singleLine=“true”
添加到文本视图,使文本仅保留在一行。如果TextView
填充整个宽度,则需要添加这些代码行
<TextView
.
.
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
/>
如果TextView
没有填充宽度,唯一的方法就是调用这个方法并将TextView
传递给它
fun addMarquee(textView: TextView) {
textView.viewTreeObserver.addOnGlobalLayoutListener(object :
ViewTreeObserver.OnGlobalLayoutListener {
override fun onGlobalLayout() {
val pixels = textView.measuredWidth - 1
val params = textView.layoutParams
params.width = pixels
textView.layoutParams = params
textView.isSelected = true
textView.ellipsize = TextUtils.TruncateAt.MARQUEE
textView.isSingleLine = true
textView.marqueeRepeatLimit = -1
textView.viewTreeObserver.removeOnGlobalLayoutListener(this)
}
})
}
注意:此方法仅适用于文本视图宽度为
wrap\u content
的情况。有什么问题吗?问题是什么?“我的代码不工作”太含糊了。我认为文本视图文本中的内容需要填充屏幕宽度以外的内容-那么“主页”字符串资源的内容是什么?显示一个不滚动的文本视图。静态文本视图仅当内容不适合屏幕时才滚动-您将文本设置为什么?如果它只是“home”,请尝试更长的字符串来测试它。我尝试放置更长的字符串。仍然不起作用。安卓:lines=“1”不是做同样的事情吗?你会这么认为的。我在一个示例应用程序中尝试了你的代码,它不会使用android:lines=“1”
滚动(只是…),但它确实可以使用android:singleLine=“true”
我尝试使用android:singleLine=“true”。但是没有运气。问题持续您是否同时删除android:lines标签?是的,我删除了。我还尝试将焦点设置为文本视图。
textview.setSelected(true);
fun addMarquee(textView: TextView) {
textView.viewTreeObserver.addOnGlobalLayoutListener(object :
ViewTreeObserver.OnGlobalLayoutListener {
override fun onGlobalLayout() {
val pixels = textView.measuredWidth - 1
val params = textView.layoutParams
params.width = pixels
textView.layoutParams = params
textView.isSelected = true
textView.ellipsize = TextUtils.TruncateAt.MARQUEE
textView.isSingleLine = true
textView.marqueeRepeatLimit = -1
textView.viewTreeObserver.removeOnGlobalLayoutListener(this)
}
})
}