Android anko DSL-添加文本视图并使其成为;“新线”;当没有更多的屏幕宽度时?
我的任务很简单,我有一个名称数组,每个名称都作为一个单独的文本视图添加。但是,我的一些数组很长,文本视图太大,无法在屏幕上显示。结果很糟糕,我不知道如何解决它。我尝试过使用所有不同的(据我所知)布局类型,但似乎没有一种能完成我想要的工作。我只是希望他们在没有空间的时候跳转到一条新的路线。有点像这样: 这就是它的样子: 这是我当前的代码:Android anko DSL-添加文本视图并使其成为;“新线”;当没有更多的屏幕宽度时?,android,textview,kotlin,dsl,anko,Android,Textview,Kotlin,Dsl,Anko,我的任务很简单,我有一个名称数组,每个名称都作为一个单独的文本视图添加。但是,我的一些数组很长,文本视图太大,无法在屏幕上显示。结果很糟糕,我不知道如何解决它。我尝试过使用所有不同的(据我所知)布局类型,但似乎没有一种能完成我想要的工作。我只是希望他们在没有空间的时候跳转到一条新的路线。有点像这样: 这就是它的样子: 这是我当前的代码: for (game in games) { verticalLayout { padding = dip(5) //bo
for (game in games) {
verticalLayout {
padding = dip(5)
//border color
verticalLayout {
padding = dip(3)
backgroundColor = Color.rgb(227, 227, 227)
//background golor
verticalLayout {
padding = dip(3)
backgroundColor = Color.rgb(250, 250, 250)
linearLayout {
var players = App.instance.db.getPlayerScores(game.toLong())
var isFirst = true
var colors = ArrayList(Arrays.asList(Color.BLUE, Color.RED, Color.GREEN, Color.MAGENTA, Color.YELLOW,Color.BLUE, Color.RED, Color.GREEN, Color.MAGENTA, Color.YELLOW,Color.BLUE, Color.RED, Color.GREEN, Color.MAGENTA, Color.YELLOW))
var ci = 0;
for (player in players) {
if (!isFirst) {
textView {
text = " vs. "
textSize = 18f
}
}
textView {
text = player.name
textSize = 24f
textColor = colors[ci]
ci += 1
}
isFirst = false
}
}
textView {
val date = App.instance.db.getGameTime(game)
text = date.substring(0, 16)
textSize = 18f
textColor = Color.GRAY
}
}
}
}
}
应该有某种解决方案来解决这个问题,而不计算linearLayout中内容的长度,并在下一个项目太大而无法容纳时创建一个新的布局?如果不是。。。如何做到这一点?问题是LinearLayout不支持在空间用完时将项目包装到下一行。有几个库可以实现这一点,比如or,但是您必须自己构建DSL。或者在没有DSL的情况下使用它们。是的,这正是我想要的。谢谢!问题是LinearLayout不支持在空间用完时将项目包装到下一行。有几个库可以实现这一点,比如or,但是您必须自己构建DSL。或者在没有DSL的情况下使用它们。是的,这正是我想要的。谢谢!