其实宽度修改都很简答。
以下伪代码:
GridView gv = this.findViewById(R.id.gridview_id);
gv.getLayoutParams(). width = 1965;//px width
gv.getLayoutParams(). height = LayoutParams. WRAP_CONTENT;
然后根据需要调用这个UI 刷新即可,一下两行代码可有可无.
View vg = getWindow().getDecorView().getRootView();
vg.invalidate();
但是如果想给GridView加上水平滚动条则问题就有些麻烦了.需要将GridView嵌入在ScrollView或者HorizontalScrollView
<HorizontalScrollView>
<GridView></GridView>
</HorizontalScrollView>
此时在代码中修改LayoutParams.width的方法,发现对GridView突然不起作用了.这个时候一个奇怪的技巧就起作用了.
将GridView再包围一个Layout即可。
修改为:
<HorizontalScrollView>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<GridView></GridView>
</LinearLayout>
</HorizontalScrollView>
这个技巧花费了数天才无意中发现。