Android anko DSL - 添加文本视图并在没有更多屏幕宽度时将其设为“换行符”?

时间:2017-09-08 17:44:54

标签: android textview kotlin dsl anko

我的任务很简单我有一系列名称,每个名称都作为单独的textview添加。但是我的一些数组很长,文本视图太大,无法放在屏幕上。结果非常糟糕,我不知道如何解决它。我试图使用所有不同的(据我所知)布局类型,并且它们似乎都没有完成我想要的工作。当没有剩余空间时,我只是希望它们跳到新线。有点像这样的工作方式:https://www.w3schools.com/css/tryit.asp?filename=trycss_float_elements

它的外观如下:enter image description here 这是我目前的代码:

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中内容的长度,应该有一些解决方案,如果下一个项目太大而不适合,可以创建一个新的leanaerLayout吗?如果不是......怎么可能这样做?

0 个答案:

没有答案