如何在GridView中动态设置单元格的高度,以及如何刷新它?现在,我让我的Adapter
实现OnGlobalLayoutListener
,在调用onGlobalLayout
时获取GridView的维度,然后保存维度。在getView()
中,我调用cell.setLayoutParams(mGridViewWidth / 3, mGridViewWidth / 3);
。我的问题是,我的整个GridView
被向左推了太多,所以只有最后一列的一部分可见。调用notifyDataChanged()
似乎有效,但看起来效率很低。我试过mGridView.requestLayout()
和mGridView.invalidateViews()
,但都不起作用。
我确认我的GridView
占据了整个屏幕。定位怪异的是元素。我将我的GridView's
背景色设置为#0000ff
,屏幕是蓝色的。元素出了问题。我回收LayoutParams
不对吗?
显然使用android:stretchMode="none"
会破坏GridView
。我删除了那部分代码,现在就可以工作了。