scrollview嵌套listview运行后最先显示出来的位置不在顶部而是中间问题


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)








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值