本人最近优化代码时不知道怎么回事,出现了ScrollView下嵌套ListView/GridView进页面不在顶部的问题
搜了好多资料终于找到相应的解决方案:
/** * 禁止ScrollView内布局变化后自动滚动 */ @Override protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) { return 0; }
如果嵌套Listview和GridView会出现只显示一行的问题只需要重写Listview中的onMeasure方法即可解决此问题:
** * 防止listview和gridview、ScrollView的冲突 * @author zsl * @blog http://blog.youkuaiyun.com/yy1300326388 * */ public class MyListView extends ListView { public MyListView(Context context, AttributeSet attrs) { super(context, attrs); } //防止数据显示不全 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }