动态更改网格布局android中的单元格大小和间距

时间:2016-11-10 04:53:09

标签: android grid-layout

我在网格布局中有一个textview,我想根据文本视图的文本区域更改网格单元格的大小。如果字大小为5,则将相应地计算网格大小。我动态地添加textview和网格。我使用以下代码进行此文本区域计算,

        text[i].setText(String.valueOf(finallist.get(i)));
        text[i].measure(0, 0);
        int widths = text[i].getMeasuredWidth();
        params.width=widths;
        text[i].setLayoutParams(params);
        text[i].setTextSize(10);

其中'params'是textview的布局参数。当我运行此代码时,我得到如下所示的输出。

output

无论文本视图大小被包裹,我都会在网格之间获得额外的空格。相反,我希望网格布局占用该区域(如果可用)。我希望输出像这样,

expected

我希望网格之间的间距相等。我怎么能动态地实现这一点。我也在这里实施拖放操作。我是新来的。请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:0)

使用StaggeredGridLayoutManager代替普通GridLayout。将找到Staggered Grid布局管理器的一个很好的示例here

  

布局管理器,以交错的网格形式布置子项。它支持水平和水平垂直布局以及反向布局儿童的能力。交错网格可能在布局边缘有间隙。为了避免这些间隙,StaggeredGridLayoutManager可以独立偏移跨距或在跨距之间移动项目。您可以通过 setGapStrategy(int)。

来控制此行为

希望它有所帮助。干杯!