Android GridView计算背景颜色不均匀

时间:2019-02-22 11:15:40

标签: android gridview kotlin

在Kotlin中为我的GridView计算以下问题的一种好的数学方法是什么?

因此在此gridview中,背景图案为:

[红色] [蓝色] [蓝色] [红色] [红色]等等...

现在我已经通过编程方式设置了这些颜色,但是如果用户无权查看此按钮,不久我可能会删除一个按钮,然后我的样式就会中断。

如何在Kotlin的适配器中计算此值?我的代码现在看起来像这样,但是我不想摆脱类中的window.parent.postMessage({ html: document.body.innerHTML }, '*');

R.color.

    buttons.add(GridViewButton(R.drawable.ic_message, "Account", R.color.buttonRed,this))
    buttons.add(GridViewButton(R.drawable.ic_message, "Account", R.color.buttonBlue,this))
    buttons.add(GridViewButton(R.drawable.ic_message, "Account", R.color.buttonBlue,this))
    buttons.add(GridViewButton(R.drawable.ic_message, "Account", R.color.buttonRed,this))
    buttons.add(GridViewButton(R.drawable.ic_message, "Account", R.color.buttonRed,this))
    buttons.add(GridViewButton(R.drawable.ic_message, "Account", R.color.buttonBlue,this))

enter image description here

1 个答案:

答案 0 :(得分:0)

经过一番动脑筋并在评论员的帮助下,我发现了这一点:

when (position % 4) {
    0, 3 -> view?.layout_button?.setBackgroundColor(mContext.resources.getColor(R.color.buttonRed))
    1, 2 -> view?.layout_button?.setBackgroundColor(mContext.resources.getColor(R.color.buttonBlue))
}

说明:

position总是从0开始。

因此,如果我们将其写成按钮1至4。

0 % 4 == 0

1 % 4 == 1

2 % 4 == 2

3 % 4 == 3

我们将第一个和最后一个值设置为红色。第二和第三为蓝色。第五个按钮基本上与第一个按钮相同