将多文本视图添加到具有完整值的水平线性布局

oknrviil  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(309)

我有很多 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);
u0sqgete

u0sqgete1#

为了获得更好的性能,最好使用recyclerview适配器,而不是50个textview。
一行50个文本视图可能会破坏你的应用程序性能。您可以使用下面链接中描述的autoscroll()方法。
https://medium.com/@aliahmedrohan/creating-a-ticker-like-marquee-text-using-recyclerview-in-android-d611886f0c4d

相关问题