我根据列宽和列数(可行)更改网格视图的宽度:
gridView.setLayoutParams(new LinearLayout.LayoutParams(gridManipulation.getColumnWidth() * (int)Math.sqrt(str.length) + 10, LayoutParams.FILL_PARENT));
gridView.setGravity(Gravity.CENTER);
我尝试在父视图中重新定位它,但是它不起作用,有人知道为什么,它仍然居中,好像它在动态变化之前仍然有宽度参数。
答案 0 :(得分:0)
如果它的大于它的父级(它永远不会大于屏幕),你不能居中它,除非你手动设置它,这将导致系统在屏幕外渲染数据并减慢你的速度...... / p>
它是垂直或水平扩展还是两者都扩展?我的推荐是把它放在一个滚动视图中。
答案 1 :(得分:0)
将Gravity
设置为LayoutParams
属性,然后将LayoutParams
设置为GridView
,如下所示...
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(gridManipulation.getColumnWidth() * (int)Math.sqrt(str.length) + 10, LayoutParams.FILL_PARENT);
params.gravity = Gravity.CENTER;
gridView.setLayoutParams(params);