`

ScrollView中嵌入ListView,GridView冲突的解决(让ListView全显示出来)

阅读更多
经常要在ScrollView中嵌入ListView,网上方法一大堆,但都比较繁琐。
本人认为比较好的办法如下:
import android.widget.ListView;

/**
 * ScrollView中嵌入ListView,让ListView全显示出来
 * @author reyo
 *
 */
public class MyListView extends ListView{

	public MyListView(android.content.Context context,android.util.AttributeSet attrs){
		super(context, attrs);
	}

	/**
	 * 设置不滚动
	 */
	public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
	{
		int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
				MeasureSpec.AT_MOST);
		super.onMeasure(widthMeasureSpec, expandSpec);

	}
	
}

继承ListView,重写onMeasure即可。

同样,当ListView中嵌套一个GridView时,也需要重写一下GridView,否则只会显示一行GridView的数据。

import android.widget.GridView;

public class MyGridView extends GridView {
	public MyGridView(android.content.Context context,
			android.util.AttributeSet attrs) {
		super(context, attrs);
	}

	/**
	 * 设置不滚动
	 */
	public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
				MeasureSpec.AT_MOST);
		super.onMeasure(widthMeasureSpec, expandSpec);

	}

}
分享到:
评论
3 楼 勤奋的it_jun 2015-09-17  
[b][/b]
2 楼 远方u 2014-01-10  
采取这个方法,listview模拟了两行,但第一行没有显示 只显示了第二行。求指教
1 楼 songweiguo 2013-09-07  
太棒了,刚好遇到这样的问题。多谢,学习了。

相关推荐

Global site tag (gtag.js) - Google Analytics