2016-11-10 79 views
-1

我有一个网格布局内的textview,我想根据文本视图的文本区域更改网格单元格的大小。如果字大小是5,那么网格大小将相应地计算。我将动态添加textview和网格。我使用下面的代码来计算此文本区域,动态更改网格布局中的单元格和间距的大小android

 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

在这里我得到的网格无论TextView的大小包间多余的空格。相反,我希望网格布局能够占用该区域。我想这样的输出,

expected

我想要的网格之间间距相等。我怎样才能达到这个动态。我也在这里拖放。我是新来的。请帮忙。提前致谢。而不是正常GridLayout

+0

不需要使用网格布局和计算文本的大小等...东西!只需使用芯片文本视图,谷歌就可以了,它会给你输出你想要的。你可以参考https://github.com/Plumillon/ChipView这个。 – Radhey

+0

我将textview放置在网格布局中。当我使用芯片文本视图时,网格会调整其大小吗? @Radhey – Anusha

+0

我也在网格布局中实现拖放操作。 @Radhey – Anusha

回答

0

使用StaggeredGridLayoutManager。交错网格布局管理器的一个很好的例子是here

一个布局管理器,它将孩子排列成一个交错的网格。它支持水平的&垂直布局以及反向布局儿童的能力。交错网格可能在布局的边缘存在间隙。为了避免这些间隙,StaggeredGridLayoutManager可以独立偏移跨度或在跨度间移动项目。您可以通过setGapStrategy(int)来控制此行为。

希望它有帮助。干杯!

+0

任何机会,我可以使用rowspec,colspec或跨度做到这一点?我正在实施拖放网格布局@aa_oo – Anusha

+0

@Anusha,我不确定。我从来没有使用拖放网格布局。抱歉。但我很确定你可以,因为它是Android! :p –

0

您可以使用GridLayout.Spec,因为它既有rowSpec也有columnSpec属性。也尝试使用setAlignmentMode asit用于其容器子项之间的所有对齐。

+0

你能举个例子吗?@Shahrair Nazim Real – Anusha

+0

为什么不能! [如何使用GridLayout。规范为一列扩展多行?](http://stackoverflow.com/questions/35924875/how-to-use-gridlayout-spec-for-a-column-extending-multiple-rows)和[设置ColumnSpan和ColumnWeight编程方式](http://stackoverflow.com/questions/35234271/set-columnspan-and-columnweight-programmatically) 此外[Android的:在gridlayout或gridview中创建动态大小的网格](http://stackoverflow.com/questions)/33314550/android-create-grid-with-dynamic-size-in-gridlayout-or-gridview)就是你想要的:) – Real73

相关问题