有没有办法强制GridView只是一行?现在默认情况下,它将扩展其高度以适应其适配器提供的所有视图
答案 0 :(得分: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无法进行垃圾收集,因为Scroll View不支持这样的事情并且您的网格视图嵌套在其中! 所以dnt对很多图像使用这种方法,否则你会得到HEAP SIZE错误!