我有很多 textview
希望自动添加到水平 linearlayout
,但这个节目只有两个 textview
并显示 textview
喜欢图片
此文本视图具有从右向左移动的动画。如何用完整值显示所有textview?
val N = response.body()!!.size // total number of textviews to add
val myTextViews = arrayOfNulls<TextView>(N) // create an empty array;
var list = response.body()!!
for (i in 0 until N)
{
// create a new textview
val rowTextView = TextView(context)
rowTextView.ellipsize = TextUtils.TruncateAt.MARQUEE
rowTextView.maxLines = 1
rowTextView.setHorizontallyScrolling(true);
rowTextView.ellipsize = TextUtils.TruncateAt.END
rowTextView.typeface = G.iransanse
rowTextView.setLayoutParams(
LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
)
)
rowTextView.isSelected = true
rowTextView.text = list[i].titr.toString() + " "
myTextViews[i] = rowTextView
myLinearLayout.addView(rowTextView)
myLinearLayout.invalidate()
myTextViews[i]!!.setOnClickListener {
Log.e("tag", i.toString())
}
}
val marquee: Animation =
AnimationUtils.loadAnimation(context, R.anim.marquee_anim)
myLinearLayout.startAnimation(marquee);
1条答案
按热度按时间u0sqgete1#
为了获得更好的性能,最好使用recyclerview适配器,而不是50个textview。
一行50个文本视图可能会破坏你的应用程序性能。您可以使用下面链接中描述的autoscroll()方法。
https://medium.com/@aliahmedrohan/creating-a-ticker-like-marquee-text-using-recyclerview-in-android-d611886f0c4d