Android GridView不均匀地计算背景颜色

问题描述 投票:0回答:1

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

所以在这个gridview中,背景模式是:

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

现在我已经以编程方式设置了这些颜色,但如果用户没有权利看到这个按钮,我很快就会删除一个按钮,然后我的伙伴就会破坏。

我如何在Kotlin的适配器中计算出来?我的代码现在看起来像这样,但我不想摆脱课堂上的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))

class GridViewButton (
    val icon: Int,
    val name: String,
    val color: Int,
    val listener: View.OnClickListener
)

enter image description here

android gridview kotlin
1个回答
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

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

© www.soinside.com 2019 - 2024. All rights reserved.