经过多种LayoutParams的测试,发现GridLayout.LayoutParams并不能显示,LinearLayout.LayoutParams可以,这个时候我就有个灵感,可不可以把GridLayout.LayoutParams换成LinearLayout.LayoutParams,然后我就看GridLayout的源码方法,发现没有直接设置宽高的构造方法,然后找到一个set其他LayoutParams的方法,这个时候我就高兴了,我就直接在构造方法中写入LinearLayout.LayoutParams
就是这样,就解决了
rowSpec和columnSpec分别设置了一个按钮的位置是第几行和第几列。(i / 4 + 2)的意思是String[] chars中id为i的元素,所处行数是i/4+2。因为i是int型,所以i/4向下取整。至于那个+2,无所谓的。
i%4的意思是i/4后的余数,因为计算器排版中一行有4个元素,所以比如2这个元素,它在String[] chars中id是9,那么他的位置是9/4的余数,也就是1,列数用0,1,2,3表示,所以它在第二列。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)