2010-09-16 96 views
3

有没有办法强制GridView只能是单行?现在,默认情况下,它将扩展其高度以容纳其适配器提供的所有视图。强制GridView只有一行?

+0

你会如何显示,例如,只有一行100个项目? – Cristian 2010-09-16 03:01:56

+0

一旦达到控件的宽度,我们可以截断子视图,或者在一个条上水平滚动。 – user291701 2010-09-16 13:45:06

回答

0

您应该结合水平SCROLLVIEW和LINEARLAYOUT和GRIDVIEW来实现您想要的效果! 将网格视图放入linearlayout中,并将线性布局放入水平滚动视图中;

然后当设置适配器!统计数据的数量! 之后,您应该计算所需的宽度以显示所有项目! 例如,你想显示8项!每个宽度是100dp。所以期望的宽度将是800dp! 就应该添加的代码

yourGridView.setNumColumns(8); 
LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(800, ViewGroup.LayoutParams.MATCH_PARENT); 
yourGridView.setLayoutParams(lp); 

这些线路DNT忘记设置在XML中的线性布局WRAP_CONTENT的宽度!

***重要提示

,因为我知道,这样做,GridView控件不能垃圾收集,因为滚动查看不支持这样嵌套在它的事情,你的网格视图! 所以dnt使用这种方法很多图像,否则你会得到HEAP SIZE错误!

+0

你可以提供一个例子吗? – AndroidGuy 2016-05-13 11:31:39