scrollview里面嵌套了一个listview ,通过设置一个方法设置了listview的高度 ,测量下
public class MyListView extends ListView {
public MyListView(Context context) {
super(context);
}
public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyListView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
@Override
/**
* 重写该方法,达到使ListView适应ScrollView的效果
*/
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
使用这个listview;
现在的情况就是进到这个界面的时候看到的,不是在 最上面 ,而是 在 listview的第一个条目 ,该问题的解决办法为:
ScrollView sv = (ScrollView) findViewById(R.id.sv);
sv.smoothScrollTo(0,Integer.MAX_VALUE);//让系统达不到这个最大值 ,他就会显示第一条了, 有意思 和 ,清理 缓存 一样, 给系统一个 很大缓存大小, 他清理全部的缓存
一键清理缓存
调用系统api请求释放存储空间,比如直接申请10G,但是你得空间总共才1G,这时候系统为了满足你得要求,会去全盘清理缓存,清理完了发现还是达不到你得要求,那么就返回失败, 但是,我们的目的已经达成,就是要让他去清理全盘缓存.
// 设置 显示ScrollView 的第0个条目 如此以上代码还是无效, 在代码里去掉listview的焦点 lv.setFocusable(false)