今天项目使用到ScrollView嵌套HorizontalScrollView,ScrollView里包含GridView,发现几个问题很经典,在此记录:
问题1.ScrollView嵌套HorizontalScrollView跳变问题,ScrollView、HorizontalScrollView自动下拉到最后一行;
设置到初始坐标(0,0)解决方法:
(时机:数据解析完并且刷新notifyDataSetChanged()之后进行下面代码设置)
scrollview.smoothScrollTo(0, 0);
horizontalscrollview.fullScroll(ScrollView.FOCUS_LEFT);
注意:
这两行代码无法达到效果( scrollview.fullScroll(ScrollView.FOCUS_UP);horizontalscrollview.fullScroll(ScrollView.FOCUS_LEFT); )
问题2.ScrollView与GridView冲突,GridView无法显示所有数据;
GridView如果知道行数大小可以直接给定高度,但是一般数据都是不固定的,所以只需在getView()进行简单的设置即可解决问题:
Collections.sort(arraylist);//根据解析数据自定义高度数据放在集合里并升序排列
LinearLayout.LayoutParams lp2 =(android.widget.LinearLayout.LayoutParams) gridview.getLayoutParams();
lp2.height=arraylist.get(arraylist.size()-1);//高度取升序集合里最大的高度即最后一位
gridview.setLayoutParams(lp2);