Android uni app 列表底部白条解决方案

uni app中android打开本地vue的列表会发现,底部有条白边。

vue通过uni.getSystemInfoSync();方法获取系统信息,首次取值对,再次取值就出错

uni app每次启动冷APP uni通过uni.getSystemInfoSync();方法获取系统信息的信息是正常的,再次获取屏幕信息异常。

解决方案:

- 由于uni app无法知道启动为冷启动还是其他启动方式
- 所以android原生通过UniModule的isAppStarted告诉uni app是冷启动还时其他启动方式
- uni app冷启动时:获取屏幕信息并保存;其他启动方式:通过本地存储获取屏幕信息
// 原生代码如下 start

    // Activity代码
    public static int started = 0;

    public static int getStarted() {
        return started;
    }

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        started++;
    }

    // UniModule代码
    /**
     * 是否热、温启动 仅android有
     *
     * @return true 是 false 否
     */
    @JSMethod(uiThread = false)
    public boolean isAppStarted(JSONObject options) {
        return (MyPandoraEntry.getStarted() > 1);
    }

// 原生代码 end

// vue代码如下
    // vue列表中适配
    var isAppStarted = uniModule.isAppStarted();
    if(isAppStarted){// 热、温启动 数据库 取值
        this.commData = uni.getStorageSync('commData') ;
        if(!this.commData){
            this.commData = uni.getSystemInfoSync();
        }
    }else{// 冷启动 存数据库
        this.commData = uni.getSystemInfoSync();
        uni.setStorageSync('commData', this.commData);
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值