Kotlin
文章平均质量分 58
Kotlin相关知识
柯基爱蹦跶
曾梦想仗剑走天涯,后来怕社保断缴一直没出发。
文内的学习过程中遇到障碍或问题,欢迎直接评论交流或向我私信提出。
展开
-
Android Compose中获取Context
前言当前版本: 1.0.0-alpha11写代码时想在click事件里弹个Toast,无奈发现如下这段代码无法通过编译,事实上是Compose里这种引用的写法是不支持的。Button(onClick = { Toast.makeText(this@MainActivity, "哈哈哈哈", Toast.LENGTH_SHORT).show()}) { Text(text = "点我")}发车先是网上搜了一番,在Stack Overflow上搜到了一篇 How to get原创 2021-02-23 18:35:13 · 6717 阅读 · 6 评论 -
Android shape渐变色用代码怎么写?
前言shape在实际开发中非常常用,一般我们会在xml中使用,但涉及到颜色动态变更时,我们需要在代码中动态创建。xml中的shape,实际上被创建出来后它是一个Drawable,点开Drawable的子类一看,我们很容易就发现一些可疑的实现类(不看需要额外依赖的),我在这里推荐几个。ColorDrawableShapeDrawableGradientDrawable一、ColorDrawable此类适用于只有颜色时的Drawableval tv = TextView(contex原创 2021-01-18 19:40:02 · 913 阅读 · 0 评论 -
Android Jetpack新成员Compose尝鲜
前言Compose的alpha版已经出来有段时间了,前不久的GDG上郭神介绍了Hilt,没曾想居然没有Compose和4.2版本的studio介绍。Compose是google今年在jetpack里新增的一位成员,想着能越过传统的xml,用kotlin代码 + 注解编写布局的形式来构建页面,参照Flutter和iOS的感觉,当然代码也可以即时预览成画面,据我体验下来比传统安装apk快很多,不过比xml预览或Flutter的预览还是慢不少,这个以后应该能优化的。先来看看官网的介绍和代码大致长什么样。代原创 2020-11-28 13:03:51 · 642 阅读 · 0 评论 -
Android 在现有项目中引入Compose
在现有的项目中引入Jetpack Compose,三步配置步骤也可以看 官网。一、配置kotlin版本Compose 从Kotlin 1.4.0 才开始支持plugins { id 'org.jetbrains.kotlin.android' version '1.4.0'}二、配置 Gradleandroid { defaultConfig { ... minSdkVersion 21 // 从API 21开始支持 } // 启用Jet原创 2020-11-28 12:39:49 · 3389 阅读 · 0 评论 -
Android 修改BottomSheetDialog默认高度
前言由于BottomSheetDialog内部setContentView时会添加进一个height=content_wrap的容器里,所以默认展示出来会是wrap,除非内容区域足够展示全屏,于是我们可以通过修改内部容器的高度来达到全屏。关键源码如下:@Override public void setContentView(View view) { super.setContentView(wrapInBottomSheet(0, view, null));}@Override原创 2020-11-16 10:19:52 · 2762 阅读 · 0 评论 -
Android ViewBinding include怎么玩
ViewBinding遇到include的时候怎么玩ViewBinding根据xml来生成单个binding文件,通过资源id来生成对应字段,比如:在fragment_tab_me里引入include_mine_head_layout<!--引入布局--><include layout="@layout/include_mine_head_layout" />使用时可能想到: // 在Fragment使用 override fun onCreateView(infl原创 2020-07-11 14:52:00 · 14419 阅读 · 8 评论 -
kotlin Array和可变参数vararg之间互转
可变参数可以直接赋值给arrayarray转可变参数,在使用array时前面加上*(传播符号:spread operator)举个例子 val array: Array<out String> = arrayOf("80","78") fun ddd(vararg tabNumber: String){ // todo } fun main(){ ddd(*a...原创 2020-04-25 14:29:54 · 5440 阅读 · 0 评论 -
Kotlin char.toInt 会转成数字的原因
1. 问题:取字符串中的一个char,再toInt,1被取值为49,导致if永远为true先上示例代码:val str = "1009"if(str[0].toInt > 0){ ...}按照预期效果,str的第0位应该大于等于1(str[0] >= 1),才会走if代码块,但事实并不如此(我取到的值:49)。2. 解决:kotlin采用的Unicode编码,而上文...原创 2020-04-03 18:17:33 · 1827 阅读 · 0 评论