效果图:
实现过程:
1、自定义类并继承ListView, 重写onMeasure(int widthMeasureSpec, int heightMeasureSpec)方法。
1 public class ListViewOnScroll extends ListView{ 2 public ListViewOnScroll(Context context) { 3 super(context); 4 // TODO Auto-generated constructor stub 5 } 6 public ListViewOnScroll(Context context, AttributeSet attrs) { 7 super(context, attrs); 8 } 9 @Override10 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {11 int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,12 MeasureSpec.AT_MOST);13 super.onMeasure(widthMeasureSpec, expandSpec);14 }15 }
2、layout中使用自定义类(以效果图为例)
19 10 14 15 22 23 30 31 32 37 38 45 46 53 54 55 60 61 68 69 76 77 78 83 84 85
PS:
scrollview里面嵌套了一个listview ,通过设置一个方法设置了listview的高度 现在的情况就是进到这个界面的时候看到的不是最上面而是中间 ,该问题的解决办法为:
scrollView.smoothScrollTo(0,0);
如此以上代码还是无效, 在代码里去掉listview的焦点 lv.setFocusable(false)