【问题标题】:How to set Colspan in Gridlayout using LinearLayout Child elements programmatically?如何以编程方式使用 LinearLayout 子元素在 Gridlayout 中设置 Colspan?
【发布时间】:2014-08-30 08:16:29
【问题描述】:

我目前正在尝试为我的 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()));

...

非常感谢任何帮助!

【问题讨论】:

    标签: android android-linearlayout android-gridlayout


    【解决方案1】:

    您需要使用 GridLayout 的 LayoutParam 的 columnspec 属性。或者您可以在 xml(android:layout_columnSpan="2") 中定义 colspan,以防您的要求是静态的。

    请在此处找到相同的内容。 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

    希望这会有所帮助。

    【讨论】:

    • 谢谢老兄!我绊倒了相关的问题。我只是不知道如何从我的 LinearLayout 中获取 GridLayout.LayoutParams。当我尝试 getLayoutParams() 然后尝试投射它们时,Android Studio 告诉我一个严重错误...
    猜你喜欢
    • 2012-11-11
    • 2016-12-09
    • 2017-07-14
    • 2011-01-29
    • 2013-07-05
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    相关资源
    最近更新 更多