问题描述
这个GridLayout正在我的应用程序中进行,该应用程序具有很多级别。每个级别都有不同的行数和列数。我认为这个GridLayout是我用来满足我需求的最佳选择。此外,所有这些都需要在运行时以编程方式完成。
This GridLayout is going in my app that has a lot of levels. Each level has a different number of rows and columns. I assume that this GridLayout would be my best bet to use to satisfy my needs. Also, all need to be done at runtime prorammatically.
我无法理解如何使用 GridLayout.spec()
。我正在尝试关注,但只是无法完全掌握它。比方说,我想要一个包含3列和4行的GridLayout。
I am having trouble understanding how to use GridLayout.spec()
. I am trying to follow this excellent example but just cannot grasp it fully. Let's say, for example, I want a GridLayout with 3 columns and 4 rows.
GridLayout.LayoutParms params1 = new GridLayout.Layout(rowSpec, columnSpec); //what's parameters?
gameplayGridLayout.setColumnCount(3);
gameplayGridLayout.setRowCount(4);
puzzle.addView(gameplayGridLayout, params1);
在我上面的链接示例中,他使用如下代码设置 specs
。
In my linked example above, he used code like below to set the "specs"
.
Spec row1 = GridLayout.spec(0, 2);
Spec row2 = GridLayout.spec(2);
Spec row3 = GridLayout.spec(3);
Spec row4 = GridLayout.spec(4, 2);
Spec col0 = GridLayout.spec(0);
Spec col1 = GridLayout.spec(1);
Spec colspan2 = GridLayout.spec(0, 2);
我也不了解这些变量的参数。我试过阅读文档,但它没有给我任何清晰度。有人可以帮助我使用3x4 GridLayout的示例代码,这也有助于解释 Spec
是什么?
I don't understand the parameters of those variables either. I've tried reading the documentation but it didn't give me any clarity. Can someone help me with my example code of the 3x4 GridLayout which also helps explain what the Spec
s are?
推荐答案
我并不完全理解你的问题,但这里有一些解释语法的例子:
I didn't exactly understand your question, but here are some examples that explain the syntax:
Spec row1 = GridLayout.spec(0, 2); //here you set row to be first row and it takes 2 cells in height.
Spec row2 = GridLayout.spec(2); //this row goes under row1 and it takes 1 cell(default size = 1)
等
Spec col0 = GridLayout.spec(0); //same here - first column, width = 1 cell.
Spec colspan2 = GridLayout.spec(0, 2);
所以你可以这样做:
Spec row1 = GridLayout.spec(0);
Spec row2 = GridLayout.spec(1);
Spec row3 = GridLayout.spec(2);
Spec row4 = GridLayout.spec(3);
Spec col0 = GridLayout.spec(0);
Spec col1 = GridLayout.spec(1);
Spec col2 = GridLayout.spec(2);
GridLayout gridLayout = new GridLayout(this);
GridLayout.LayoutParams first = new GridLayout.LayoutParams(row1, col0);
/*Here you can set options for first cell which is in first row and first column.*/
first.width = screenWidth;
first.height = quarterScreenWidth * 2;
twoByTwo1.setLayoutParams(first);
twoByTwo1.setGravity(Gravity.CENTER);
twoByTwo1.setBackgroundColor(Color.RED);
twoByTwo1.setText("TOP");
twoByTwo1.setTextAppearance(this, android.R.style.TextAppearance_Large);
gridLayout.addView(twoByTwo1, first)
//You can set all cells like above.
我希望这会有所帮助。 :)
I hope this helps. :)
这篇关于不明白如何使用GridLayout.spec()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!