在更改其宽度属性后在android中的中心视图

时间:2014-03-26 17:36:50

标签: android android-layout gridview android-linearlayout gravity

我根据列宽和列数(可行)更改网格视图的宽度:

gridView.setLayoutParams(new LinearLayout.LayoutParams(gridManipulation.getColumnWidth() * (int)Math.sqrt(str.length) + 10, LayoutParams.FILL_PARENT));
gridView.setGravity(Gravity.CENTER);

我尝试在父视图中重新定位它,但是它不起作用,有人知道为什么,它仍然居中,好像它在动态变化之前仍然有宽度参数。

enter image description here

2 个答案:

答案 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);
相关问题