在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
)
经过一些脑力破碎并在评论者的帮助下,我发现了这一点:
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个按钮相同