获取当前app的版本、平台信息 static String _version; static String _flatform; import ‘package:package_info/package_info.dart’; /// 获取当前版本 PackageInfo packageInfo = await PackageInfo.fromPlatform(); _version = packageInfo.version; import ‘package:
等等,具体看下源码吧。 二、View的绘制流程 ViewRoot -> performTraversal() -> performMeasure() -> performLayout() -> perfromDraw() -> View/ViewGroup measure() -> View/ViewGroup onMeasure() -> View/ViewGroup layout() -> View/ViewGroup onLayout() ->
windowInfo.view?.setOnTouchListener(this) windowInfo.layoutParams = createLayoutParam(x, y) if (!windowInfo.hasParent().value()) { val windowManager = this.context?.getSystemService(Context.WINDOW_SERVICE) as WindowManager windowManager.addView(windowInf
if (adapterSize == null) { adapterSize = findBestPictureResolution(); } if (adapterSize != null) { params.setPictureSize(adapterSize.width, adapterSize.height); } if (mPreviewSize != null) { params.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
在Kotlin中!!跟?都是用于判断空参数异常的 ?.意思是这个参数可以为空,并且程序继续运行下去 !!.的意思是这个参数如果为空,就抛出异常 下面给大家举个简单的例子,在JAVA中判断一个参数非空是这样写的: NullClass nullClass = null; if (nullClass!=null) { ullClass.nullFun();
DSL(领域特定语言)指的是专注于特定问题领域的计算机语言。不同于通用的计算机语言(GPL),领域特定语言只用在某些特定的领域。 DSL语言能让我们以一种更优雅、更简洁的方式的方式来表达和解决领域问题。 简单来讲就是对一个特定的问题的方案模型更高层次的抽象表达,使其更加简单易
} 接下来我们看一下如何在项目中使用 DataBinding 和 ViewBinding,因文章篇幅原因,这里仅仅演示在 Activity 中使用,更多用法可以查看 Binding 库的示例。 在模块级 build.gradle 文件内 开启 DataBinding 或者 ViewBinding 之后,需要在 Activity 中进行初始化,获取到 ViewBindin
public final class SingletonDemo { public static final SingletonDemo INSTANCE; private SingletonDemo(){} static { SingletonDemo var0 = new SingletonDemo(); INSTANCE = var0; } } 通过以上代码,我们了解事实就是这个样子的,使用Kotlin"object"进行对象声明与我们的
override fun onError(t: Throwable?) { tv_text.text = “error” } }) } // 使用协程 请求+渲染数据 fun requestData2() { GlobalScope.launch(Dispatchers.Main) { try { tv_text.text = Gson().toJson(testApi.getLatestNews2()) } catch (e: Exception) { tv_text.text
Kotlin学习笔记四 标准库函数apply函数let函数run函数 与with函数also函数takeif函数 集合类listset数组map 标准库函数 apply函数 apply可以看做是一个对象的配置函数,隐式调用,返回配置好的对象 eg //不使用apply file:File=new File(“C://daxiong”) file.setReadable
关于标签书写规则: android:name 必须是以“ OnePush ”开头,并且以“_“进行分割(OnePush_平台名称_平台标识码),在初始化OnePush 的时候,根据标识码和当前手机系统,动态的使用不同平台消息推送。 android:value 这个是继承IPushClient实现类,全类名路径。 5. 添加第三方AppKey
Kotlin和Java:哪个是更好的Android开发语言?本文将通过比较Kotlin和Java,看看哪个更适合进行Android开发。Java是最古老的Android原生语言,是一种多平台、面向对象的语言.在使用Jav Kotlin面临的一些主要发展挑战包括:不太受欢迎陡峭学习曲线小型支援社区Kotlin与Java对决既然已
十年前还是web和PC软件的天下,功能也没复杂到哪去。你再看看现在的APP,要把数十个模块功能塞到一个几十兆的APP里面,技术含量是两个级别的。 2.越旧越与时代脱轨,功能以及性能无法满足需要了。 我虽然还没有满35,但有时候真的感觉力不从心,一些新的技术名词都是闻所未闻,得翻个墙看
问题很细,能准备多详细就准备多详细。人家自己封装了一套 Handler 来避免内存泄漏问题 Native、H5、RN页面混合跳转时,页面清栈的桥如何实现的? 自己做的一个项目,原理讲清楚就行,讲不清就画图 怎么计算一个View在屏幕可见部分的百分比? ClassLoader 的双亲 委派机制 - 简单
好文推荐 作者:付十一 作用域函数是Kotlin比较重要的一个特性,共分为以下5种:let、run、with、apply 以及 also,这五个函数的工作方式可以说非常相似,但是我们需要了解的是这5种函数的差异,以便在不同的场景更好的利用它。 读完这篇文章您将了解到: 什么是Kotlin的作用域函数?
2.2.1 Kotlin调用Java 2.2.2 java调用kotlin 一、基础 =================================================================== | | java | kotlin | | — | — | — | | 继承/实现 | extend implements | : | | 强转 | Integer.parse(String) | String.toInt/as Int | |
| 12 | zetbaitsu/Compressor | android图片压缩库,通过使用DSL接口更加易用,同时支持在Coroutine总处理异步任务 | 5.4k+ | | 13 | android/android-ktx | 官方的kotlin扩展库,基本上是Kotlin/Android项目的必备工具 | 7.6k+ | | 14 | square/moshi | Kotlin上首选的序列化/反
硬关键字:始终解释为关键字,不能用作标识符 as — 用于类型转换 — 为导入指定一个别名 as? 用于安全类型转换 break 终止循环的执行 class 声明一个类 continue 继续最近层循环的下一步 do 开始一个 do/while 循环(后置条件
1.3.70 中引入了 @RequireOptIn 与 @OptIn 注解以取代先前使用的 @Experimental 与 @UseExperimental;同时 -Xopt-in 编译器选项也取代了 -Xuse-experimental。 Kotlin 标准库提供了一种机制,用于要求并明确同意使用 API 的某些元素。通过这种机制,库开发人员可以将使
通过使用命名得当的函数作为构建器,结合带有接收者的函数字面值,可以在 Kotlin 中创建类型安全、静态类型 的构建器 类型安全的构建器可以创建基于 Kotlin 的适用于采用半声明方式构建复杂层次数据结构领域专用语言(DSL)。 以下是构建器的一些示例应用场景:
作用域函数 Kotlin 标准库包含几个函数,它们的唯一目的是在对象的上下文中执行代码块。当对一个对象调用这样的函数 并提供一个 lambda 表达式时,它会形成一个临时作用域。在此作用域中,可以访问该对象而无需其名称。这些 函数称为作用域函数。共有以下五种:let 、run 、with
类引用 最基本的反射功能是获取 Kotlin 类的运行时引用。要获取对静态已知的 Kotlin 类的引用,可以使用 类字面值 语法 val c = MyClass::class 请注意,Kotlin 类引用与 Java 类引用不同。要获得 Java 类引用,请在 KClass 实例上使用 .java 属性 绑定的类引用(自
注解声明 注解是将元数据附加到代码的方法。要声明注解,请将 annotation 修饰符放在类的前面 annotation class Fancy 注解的附加属性可以通过用元注解标注注解类来指定 — @Target指定可以用该注解标注的元素的可能的类型(类、函数、属性、表达式等);
异常类 Kotlin 中所有异常类都是 Throwable 类的子孙类。每个异常都有消息、堆栈回溯信息以及可选的原因 使用 throw-表达式来抛出异常 throw Exception("Hi There!") 使用 try-表达式来捕获异常: try { // 一些代码 } catch (e: SomeException) {
可空类型与非空类型 Kotlin 的类型系统旨在从我们的代码中消除 NullPointerException 。NPE 的唯一可能的原因可能是: — 显式调用 throw NullPointerException() — 使用了下文描述的 !! 操作符 — 有些数据在初始化时不一致,例如当 — 传递一个