首页 > 其他分享 >Android技术分享| Bugly 应用升级自定义UI

Android技术分享| Bugly 应用升级自定义UI

时间:2022-10-13 11:49:42浏览次数:66  
标签:p0 自定义 fun Beta UI Activity override Android public

最近项目里的采用免费的Bugly应用升级功能,由于默认的 UI 非常的简陋且与项目整体风格不搭,所以需要自定义UI,本篇文章记录在实现过程中的一些注意事项。根据官方文档可知,自定义升级界面有以下两种方式。

一、固定控件ID

这种方式比较简单,只需要自己编写布局,并设置控件的Tag 即可。

<TextView
 android:layout_width="match_parent"
 android:layout_height="@dimen/dp_62"
 android:gravity="center"
 android:tag="beta_title" //按要求设置Tag即可
 android:textSize="@dimen/sp_16"
 android:textColor="@color/white"
 android:text="发现新版本"/>

这里有个需要注意的地方就是beta_title beta_upgrade_info beta_upgrade_feature beta_cancel_button beta_confirm_button 这几个控件 Tag 缺一不可,缺了会导致整个页面是黑色的。

通过以上设置,基本就可以展示自己的 UI 了,但随即也会发现一个问题:状态栏是黑色,下方还有一条灰色的类似 ActionBa r的东西。

查阅文档发现,可以注 Bugly 弹窗的生命周期回调,如下所示。

Beta.upgradeDialogLifecycleListener = object :UILifecycleListener<UpgradeInfo>{
            override fun onCreate(p0: Context?, p1: View?, p2: UpgradeInfo?) {
            }

            override fun onStart(p0: Context?, p1: View?, p2: UpgradeInfo?) {
            }

            override fun onResume(p0: Context?, p1: View?, p2: UpgradeInfo?) {
            }

            override fun onPause(p0: Context?, p1: View?, p2: UpgradeInfo?) {
            }

            override fun onStop(p0: Context?, p1: View?, p2: UpgradeInfo?) {
            }

            override fun onDestroy(p0: Context?, p1: View?, p2: UpgradeInfo?) {
            }

        }

对应的就是 BetaActivity 的生命周期,于是只需要在 onCreate 回调中,设置沉浸式状态即可。

至于怎么设置可以按照自己项目里的来,我设置了沉浸式,但有一条灰色的还是去不掉。而且这个方式无法满足我

们项目产品的要求,需要有进度条显示。于是可以用另外一种自定义 Activity的方式。

二、自定义Activity

使用这种方式虽然比第一种稍微复杂了一点点

标签:p0,自定义,fun,Beta,UI,Activity,override,Android,public
From: https://www.cnblogs.com/anyrtc/p/16787631.html

相关文章

  • pip install -r requirements.txt报错python setup.py egg_info did not run successf
    requirements.txt中内容:certifi==2018.1.18Django==2.0.2django-cors-headers==2.1.0djangorestframework==3.7.7idna==2.6pytz==2017.3requests==2.18.4django-rest-swa......
  • 【第3版emWin教程】第1章 当前主流的小型嵌入式GUI
    ​​​​第1章  当前主流的小型嵌入式GUI这几年Cortex-M系列单片机发展迅猛,功能也越来越强劲,随之而来的就是小型嵌入式GUI也得到很好的发展。本章节就为大家介绍下当前主......
  • 自定义的异常类oppdemo12
    //自定义的异常类publicclassMyExceptionextendsException{//双击shift:搜索//传递数字>10privateintdetail;publicMyException(inta){this.d......
  • vue-directive__自定义指令
    vue-directive__自定义指令1.复制/***v-copy*复制某个值至剪贴板*接收参数:string类型/Ref<string>类型/Reactive<string>类型*/importtype{Directive,Direct......
  • 写一个加载中的自定义指令
    前置知识el:指令绑定到的元素binding:对象value:传递给指令的值arg:传递给指令的参数instance:使用该指令的组件实例首先构建自定义指令的样子<template><div......
  • element-ui的el-input设置number类型后的相关问题
    element-ui的el-input,设置type="number"后,后边会多一个上下箭头,并且在中文输入法输入数据的时候,光标上移!! 前端的强迫症啊(凭啥你这输入框和别人的不一样,凭啥你光标就......
  • Android Studio 出现 Failed to create JVM
    failedtocreateJVM:JVMpath:"C:\ProgramFiles\XXXXXX\XXXX\xxxxx\"ifyouhavea64-bitjdkinstalled,defineaJAVA_HOMEvariableinComputer>systemv......
  • python requirements 相关
    python中通过requirements.txt来记录项目所有的依赖包及其版本号,以便在其他的环境中部署。如果在开发的时候升级了依赖包,记得更新此文件!pipfreeze>requirements.txt在其......
  • Element UI tree组件总结
    tree组件折叠//关闭弹窗时,折叠组织树(耗时操作)for(vari=0;i<this.$refs.tree.store._getAllNodes().length;i++){this.$refs.tree.store._getAllNodes()[i......
  • ajax 请求队列解决方案并结合elementUi做全局加载状态
    全本下载地址ajax文件入口可发送blob文档流,form表单与通常json解决方案结合消息队列(messagelist)与elementUi(Loading)制作请求加载方案拥有post默认请求......