我目前正在尝试为我的Android应用程序创建一个类似于GUI的Windows 8开始菜单,显示可以触摸的不同块。为此,我使用GridLayout并继续在xml文件的for循环中添加子元素。到目前为止,一切正常。我的问题是,我实现了不同大小的瓷砖,这样就存在了普通(二次)和水平拉伸尺寸的两倍。这些较大的显示正确,但由于缺少colSpan,较大的瓷砖上方和下方都有一个白色间隙。
II II II II II II II
II II II XXXXX II II II
II II II II II
对不起,我还无法添加图片,但是在更大的瓷砖(XXXX)的上方和下方,还有可以用另一个瓷砖填充的空间,以使整个事情更好看:
II II II II II II II II
II II II XXXXX II II II
II II II II II
这是添加图块时的代码:
// GridLayout design
GridLayout gl = (GridLayout) findViewById(R.id.main_grid_layout);
// Kachel design
LinearLayout kachel = new LinearLayout(this);
kachel.setBackgroundResource(getBackgroundOfCategory(kategorieid));
kachel.setOrientation(LinearLayout.VERTICAL);
// Small and bigger kacheln
LinearLayout.LayoutParams kachelLP = new LinearLayout.LayoutParams(320,320);
if(size == 1) {
kachelLP = new LinearLayout.LayoutParams(640,320);
}
kachelLP.setMargins(10,10,10,10);
kachel.setLayoutParams(kachelLP);
kachel.setClickable(true);
// Kachel actions
kachel.setOnClickListener(new KachelOnClickListener(kachelid, getResources(), getBaseContext()));
...
非常感谢任何帮助!
答案 0 :(得分:0)
您需要使用GridLayout&#39的LayoutParam的columnspec属性。或者你可以在xml中定义colspan(android:layout_columnSpan =" 2"),因为你的要求是静态的。
请在此处找到相同的内容。 http://developer.android.com/reference/android/widget/GridLayout.LayoutParams.html
这是一个相关的问题。 Set rowSpan or colSpan of a child of a GridLayout programmatically?
可在此处找到进一步的帮助。 http://android-developers.blogspot.in/2011/11/new-layout-widgets-space-and-gridlayout.html
希望这有帮助。