Android-Android中如何让一个GridView的显示空间最多4行?

Android-Android中如何让一个GridView的显示空间最多4行?

夜无邪 发布于 2017-09-28 字数 718 浏览 1098 回复 1

RT。如果GridView包含的内容很少,则依据内容多少而显示多少。如果GridView包含的内容很多,则显示空间只显示4行,然后滑动GridView来显示其他的内容。请问如何设置才能够达到这个效果?因为我现在的有一个GridView在AlertDialog里面,发现内容太多的话,就会占满整个屏幕,然后还把底部的按钮挤到屏幕外面去了。
@斑驳-neo 还请赐教呀。
或者问题可以换成,如何控制一个AlertDialog的显示空间?否则内部内容太大了,显示出来就不太方便了。

补充:
这个问题是在测试小屏幕手机的时候发现的。所以过来请教,看有没有相应的解决方法。
我希望的最好的方法就是控制GridView最多显示4行,多余4行的滑动显示,这样来控制GridView所占的空间,也就可以控制整个AlertDialog的大小了。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

想挽留 2017-10-01 1 楼

被你 @ 到还是很幸福的~
如果只是想控制 AlertDialog 的显示控件,可以在 自定义 的布局里面设置高度呀
这里使用 dp 作为单位不为过的,我习惯上不使用 %

如果设置成了定高的布局,还怕显示不开的话,在外面加一层 ScrollView 吧。
待会我看看写个实例再贴出来。

更新
我找到一个比较赖皮的方案:
获取一下 gridView 对象,然后待加载完毕后获取其实际的高度

gridView.getHeight();

即可,但是一定要确定以加载完毕,否则会得到 0 哦
尝试过 gridView.getLayoutParams().height; 但是有 负值 的情况

假设我们正确的获取到了其高度,那就好办了
我们肯定有一个期望的最大高度,比如 frank 所述的四层,
每一层的高度加上 verticalSpacing 是固定的,那就很容易算出你需要的最大高度值

然后通过:

ViewGroup.LayoutParams layoutParams = gridView.getLayoutParams();
layoutParams.height = maxHeightYouSetted;
gridView.setLayoutParams(layoutParams);

即可完成设置,生效后,gridView 会自动为不够显示的部分添加滚动轴

祝好,
斑驳敬上