重写ListView onMeasure后,最后一条item显示不全的问题

当我们需要在ScrollView中嵌套ListViewGridView时,需要重写onMeasure()方法,从而解决嵌套时的显示不全问题,这个方法显然是有效的。

@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
				MeasureSpec.AT_MOST);
		super.onMeasure(widthMeasureSpec, expandSpec);
	}

这样就让ListView或GridView全部显示了。


但是当我们嵌套ScrollView的时候,容易产生另外一个我们以为是listview的问题的问题,就是ListView的最后一条item显示不全,相信很多人都像我一样以为问题出在了listview,

但其实问题是处在了ScrollViewScrollView只能包含一个子节点,当我们给这个子节点设置android:layout_marginTop="xdp"时,之后,上面多出来了xdp的边距,但是这却导致了下面少了xdp,导致该滚动条拖不到最底端,就会出现最后一条item显示不全,解决的办法就是不要在第一层子节点设置marginTop,如果需要可以在下一层进行设置。


最后。。。希望对看到的人有所帮助。

你可能感兴趣的:(android)