Android ScrollView嵌套HorizontalScrollView 滑动问题 ScrollVi

今天项目使用到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无法显示所有数据;

方法1)GridView如果知道行数大小可以直接给定高度,,但是一般数据都是不固定的,所以只需在getView()进行简单的设置即可解决问题:

Collections.sort(arraylist);//根据解析数据自定义高度数据放在集合里并升序排列

LinearLayout.LayoutParams lp2 =(android.widget.LinearLayout.LayoutParams) gridview.getLayoutParams();

lp2.height=arraylist.get(arraylist.size()-1);//高度取升序集合里最大的高度即最后一位

gridview.setLayoutParams(lp2);

方法2)自定义控件:

public class GridView4ScrollView extends GridView {public GridView4ScrollView(Context context) {super(context);}public GridView4ScrollView(Context context, AttributeSet attrs) {super(context, attrs);}public GridView4ScrollView(Context context, AttributeSet attrs,int defStyle) {super(context, attrs, defStyle);}@Override//适用Listview和GridViewprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, expandSpec);}

这一次是一个告别,或者一个永远的告别,

Android ScrollView嵌套HorizontalScrollView 滑动问题 ScrollVi

相关文章:

你感兴趣的文章:

标签云: