首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓常用控件

Switch Switch 是一个切换开关控件,用于在开关之间切换状态。 属性 android:textOn: 设置开状态时文本android:textOff: 设置关状态时文本。...ListView ListView 是一个用于显示滚动列表控件,每个列表项可以是一个自定义视图。 使用步骤 定义布局: 创建一个包含 ListView 布局。...创建适配器: 使用适配器将数据绑定到 ListView。 设置适配器: 将适配器设置到 ListView 上。...使用步骤 定义布局: 创建一个包含 RecyclerView 布局。 创建适配器: 实现 RecyclerView.Adapter,定义数据视图绑定逻辑。...通过合理地使用这些控件,可以开发出功能强大且用户体验良好应用程序。希望这篇博客能够帮助你更好地理解使用Android控件,如果有任何问题或想法,欢迎在评论区讨论!

7510

DataBinding最全使用说明

我开源一个基于KotlinDatabinding特性RecyclerView库: BRV, 具备无与伦比简洁MVVM特性; 布局 布局文件 ...android:text="@{userName}" 两个布局通过includebind:值来传递....而且两者必须有同一个变量 DataBinding不支持merge标签传递变量 自动布局属性 DataBinding对于自定义属性支持非常好, 只要View中包含setter方法就可以直接在布局使用该属性...但是如果是视图设置数据则会走其他函数(get), 如果该函数返回类型Model中类型匹配则会报异常, 除非你将那个函数改为类型匹配....在数据视图数据统一时可以使用该注解@InverseMethod解决数据转换问题 例如数据模型存储用户id但是视图不显示id而是显示用户名(数据视图类型不一致), 我们就需要在两者之间转换.

2K20
您找到你想要的搜索结果了吗?
是的
没有找到

是继续Rxjava还是该试试Kotlin协程?

0.前言 协程以前一直是Kotlin作为实验性一个库,前些日子发现1.3版本kotlin relese了协程,所以就找时间研究了一下,本来早就想写这篇文章了,但是因为离职换工作原因,迟迟未能动笔,...1.2协程线程关系 协程线程,都能用来实现异步调用,但是这两者之间是有本质区别的 (1)协程是编译器级别的,线程是系统级别的。协程切换是由程序来控制,线程切换是由操作系统来控制。...(2)协程是协作式,线程是抢占式。协程是由程序来控制什么时候进行切换,而线程是有操作系统来决定线程之间切换。 (3)一个线程可以包含多个协程。...2.简单用法 这里我打算模仿一个网络请求,点击button发送网络请求,显示一个progressbar打转,返回结果后一个textview显示结果并隐藏progressbar 先看一下布局文件      ...4.最后 这年头用Kotlin来开发android应用确实越来越爽快了,一些新特性也逐渐加入到Kotlin中,值得更加学习,当然还有Flutter,以后会陆续写几个关于Flutter文章,毕竟release

3.7K10

2.ui

;          b):在相对布局中在线性orientation方向权重在相对布局中并不适用;  c):组件默认左对齐、顶部对齐 * 设置组件在指定组件右边  android:layout_toRightOf...visible表示控件是可见,这个值是默认值,指定 android:visibility时,控件都是可见。...一般用invisiable让它占位,不占位可能布局会发现问题,可能跑到上边去 AndroidMarginPadding跟Html是一样。...SimpleAdapter //集合中每个元素都包含ListView条目需要所有数据,该案例中每个条目需要一个字符串一个整型,所以使用一个map来封装这两种数据 List<Map<String...;default:break;} 在按钮点击事件中,通过 getVisibility()方法来判断 ProgressBar是否可见,如果可见就将 ProgressBar隐藏掉,如果不可见就将 ProgressBar

1.5K90

Android 蓝牙开发(扫描设备、绑定、解绑)Kotlin

没错,这就是Kotlin语言Android项目,Java还是有区别的,建议了解了Kotlin语法再看文章会比较好,当然你也可以对照我写Android 蓝牙开发(扫描设备、绑定、解绑)Java版来看...上面涉及到代码,所以JavaKotlin资源文件配置是差不多。 ② 布局样式 图片资源 ? ? ? ? ? ?...而Kotlin语法可以让你把构造方法参数作为类参数使用,这样解释不知道是不是对,这里传了一个布局id和数据源。...val 表示不可变量,而通过Kotlin类型推导机制,tvName此时代表就是一个通过R.id.tv_name实例化之后TextView。...避免重复添加添加null设备进入列表,而点击item,根据绑定状态而定,绑定过蓝牙点击就是取消绑定,这里调用了一个方法。

4.3K20

Android自定义webView头部进度加载效果

看图说话: 上图是不是加载网页时候会有一个进度条在横向加载,比以前网速不好时候是一片空白给人感觉友好多了是,然后效果还不错。...实现思路 就是自己画一条进度线(大家应该都会吧)然后加载到WebView上面,开始进度条是隐藏,进度线初始值为1,然后为了效果好一点,初始少于10进度都让它加载到10位置,等进度到100时候0.2...注意:使用渐变时数组长度透明度数组长度必须一致,否则会报错 步骤二:自定义封装webView #ProgressWebView.java package com.losileeya.materialprogresswebview.widget...(newProgress)来更新进度,进度到100时再隐藏,是不是思路很清晰,其他就是一些webView设置封装这里都有清楚注释,自己去看。...使用ProgressWebView加载网页 布局使用: #activity_main.xml <?xml version="1.0" encoding="utf-8"?

1.3K10

Kotlin 委托属性在Android开发中几个使用场景!

Kotlin 真的是一门美丽开发语言,她拥有的一些很棒特性使 Android 开发变成有趣令人兴奋。...我们可以这样使用刚才创建委托: class Example { //使用 by 关键字 var param: String by TrimDelegate() } 上面的代码下面的代码效果相同...View 委托 假设我们有一个自定义View,它包含三个文本字段——一个标题,一个子标题,还有描述——布局如下: <LinearLayout xmlns:android="http://schemas.android.com...Kotlin Android Extension视图绑定来获取布局控件。...总结 我们看来一些在 Android 开发中使用 Kotlin 委托属性例子。当然了,你也可以用别的方式来使用它。 这篇文章目标是展示委托属性是多么强大,以及我们可以用它做什么。

4.6K41

ViewBinding 与 Kotlin 委托双剑合璧

ViewBinding 是 Android Gradle Plugin 3.6 中新增特性,用于更加轻量地实现视图绑定(即视图与变量绑定),可以理解为轻量版本 DataBinding。...ViewBinding 是 Android Gradle Plugin 3.6 中新增特性,用于更加轻量地实现视图绑定(即视图与变量绑定),可以理解为轻量版本 DataBinding。... ButterKnife 需要在代码中声明很多变量,其他几种方案代码简洁度较好; 2、编译检查: 编译期间主要有两个方面的检查:类型检查 + 只能访问当前布局 id。...1.3 ViewBinding 实现原理 AGP 插件会为每个 XML 布局文件创建一个绑定类文件 xxxBinding ,绑定类中会持有布局文件中所有带 android:id 属性 View 引用...总结 ViewBinding 是一个轻量级视图绑定方案,Android Gradle 插件会为每个 XML 布局文件创建一个绑定类。

1.6K20

Android 低功耗蓝牙开发(扫描、连接、数据交互)Kotlin

⑦ 数据渲染 ⑧ 开始停止扫描 四、连接和数据交互 ① 绑定视图 ② 初始化连接 ③ Ble回调 ④ 帮助类 ⑤ UI回调 五、源码 前言   写这篇文章是因为有读者想看看Kotlin中怎么操作低功耗蓝牙...,再加上我也想写一些关于Kotlin内容,对于低功耗蓝牙Java版,我写了两篇,一个是扫描、连接,另一篇就是数据交互,而这篇Kotlin文章我会减少讲解环节,更多注重业务逻辑UI以及Kotlin...由ViewBinding根据布局生成 //视图绑定 private lateinit var binding: ActivityMainBinding 然后在onCreate中进行绑定 override...当然最主要是多使用Kotlin,作为弱类型语言,代码阅读需要有一定Kotlin基础才可以,高阶写法可读性很差,但是效率很高代码也很简洁。...BaseQuickAdapter使用,之前我是没有通过ViewBinding去进行布局绑定,都是通过R.layout.item布局文件进行,那么换成了ViewBinding要怎么操作呢?

2.7K31

Android 低功耗蓝牙开发(扫描、连接、数据交互)Kotlin

⑦ 数据渲染 ⑧ 开始停止扫描 四、连接和数据交互 ① 绑定视图 ② 初始化连接 ③ Ble回调 ④ 帮助类 ⑤ UI回调 五、源码 前言   写这篇文章是因为有读者想看看Kotlin中怎么操作低功耗蓝牙...,再加上我也想写一些关于Kotlin内容,对于低功耗蓝牙Java版,我写了两篇,一个是扫描、连接,另一篇就是数据交互,而这篇Kotlin文章我会减少讲解环节,更多注重业务逻辑UI以及Kotlin...当然最主要是多使用Kotlin,作为弱类型语言,代码阅读需要有一定Kotlin基础才可以,高阶写法可读性很差,但是效率很高代码也很简洁。...BaseQuickAdapter使用,之前我是没有通过ViewBinding去进行布局绑定,都是通过R.layout.item布局文件进行,那么换成了ViewBinding要怎么操作呢?...,只要传入数据布局文件id就可以了,但是现在布局id变成了ViewBinding,因此就需要对这个BaseViewHolder进行一个覆写,这个方式我也是参考了网上博客内容, 新建一个adapter

1.7K20

Android 蓝牙开发(扫描设备、绑定、解绑)Kotlin

[在这里插入图片描述] 没错,这就是Kotlin语言Android项目,Java还是有区别的,建议了解了Kotlin语法再看文章会比较好,当然你也可以对照我写Android 蓝牙开发(扫描设备、...然后是styles.xml文件 [在这里插入图片描述] 上面涉及到代码,所以JavaKotlin资源文件配置是差不多。...在上面的代码中DeviceAdapter继承了BaseQuickAdapter,这一点Java相似,如下图所示 [在这里插入图片描述] 而Kotlin语法可以让你把构造方法参数作为类参数使用,这样解释不知道是不是对...val 表示不可变量,而通过Kotlin类型推导机制,tvName此时代表就是一个通过R.id.tv_name实例化之后TextView。...避免重复添加添加null设备进入列表,而点击item,根据绑定状态而定,绑定过蓝牙点击就是取消绑定,这里调用了一个方法。

3.9K10

kotlin-android-extensions插件也被废弃了?扶我起来

最重要是,这些内容对于绝大部分开发者来说都是黑盒,使用kotlin-android-extensions插件的人可能并不知道这些隐藏“坑”,这个问题在稍后介绍RecyclerView Adapter...当然,如果有些布局文件你希望为它生成对应Binding类,可以在该布局文件根元素位置加入如下声明: <LinearLayout xmlns:tools="http://schemas.<em>android</em>.com...讲完了<em>kotlin</em>-<em>android</em>-extensions插件<em>的</em>“坑”,接下来我们还是看一下如何在Adapter中<em>使用</em>ViewBinding,别忘了我们<em>的</em>目标始终是<em>不</em>写findViewById。...merge<em>和</em>include最大<em>的</em>区别在于,<em>使用</em>merge标签引入<em>的</em><em>布局</em>在某些情况下可以减少一层<em>布局</em><em>的</em>嵌套,而更少<em>的</em><em>布局</em>嵌套通常就意味着更高<em>的</em>效率。...="Done" /> 可以看到,这里最外层布局使用了merge标签,这就表示当有任何一个地方去include这个布局时,会将merge标签内包含内容直接填充到include位置

2.7K31

Jetpack 系列之Paging3,看这一篇就够了~

Kotlin语言并且使用了协程Flow,所以也需要添加协程库如下: implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:...Paging加载状态 Paging3 为我们提供了获取Paging加载状态方法,其中包含添加监听事件方式以及在adapter中直接显示方式,首先我们来看监听事件方式 使用监听事件方式获取加载状态...viewHolder LoadStateViewHolder绑定布局是底部显示布局,一个正在加载显示以及一个重试按钮,xml布局如下所以: 正在加载提示重新请求布局默认都是隐藏...除此之外,Paging3中还有一个比较重要RemoteMediator,用来更好加载网络数据库本地数据库,我们后续有机会再为大家单独分享吧~ 2020年11月21日更新 paging3设计理念是建议对列表数据直接修改

1.9K20

Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能

有些是因为功能不完整或有Bug,有些是因为使用起来太复杂,十全十美的还真没找到。因此我也是放弃了在网上找现成代码想法,自己花功夫编写了一种非常简单下拉刷新实现方案,现在拿出来大家分享一下。...这里我们将采取方案是使用组合View方式,先自定义一个布局继承自LinearLayout,然后在这个布局中加入下拉头ListView这两个子元素,并让这两个子元素纵向排列。...> 在这个布局中,我们包含了一个下拉指示箭头,一个下拉状态文字提示,一个上次更新时间。...*/ private ProgressBar progressBar; /** * 指示下拉释放箭头 */ private ImageView arrow; /** *...在Activity布局文件中加入自定义RefreshableView,并让ListView包含在其中。 2.

5.4K110

Kotlin从零到精通Android开发》资源下载内容勘误

资源下载 下面是《Android Studio开发实战 从零基础到App上线》一书用到工具代码资源: 1、本书使用Android Studio版本为3.0.1,Kotlin版本为1.2.0...,最新Android Studio安装包可前往Android官网页面下载。...7、第55页“3.4.3  sin” 该小节标题“sin”要改为“isin”。...14、第180页“7.2.5  仿支付宝首页头部伸缩特效” 第三段倒数第二行“遮罩变得越来越不透明”改为“遮罩变得越来越透明”,也就是去掉“”字。...18、第277页“9.4.2  绑定方式启动服务” 第一段第三行“表示解除绑定并停止服务(如果原来没有启动)”改为“表示解除绑定并停止服务(如果原来有启动)”,也就是把括号里面的“没有”改成“有”。

1.4K20

Jetpack 系列之Paging3,看这一篇就够了~

Kotlin语言并且使用了协程Flow,所以也需要添加协程库如下: implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:...Paging加载状态 Paging3 为我们提供了获取Paging加载状态方法,其中包含添加监听事件方式以及在adapter中直接显示方式,首先我们来看监听事件方式 使用监听事件方式获取加载状态...viewHolder LoadStateViewHolder绑定布局是底部显示布局,一个正在加载显示以及一个重试按钮,xml布局如下所以: 正在加载提示重新请求布局默认都是隐藏...除此之外,Paging3中还有一个比较重要RemoteMediator,用来更好加载网络数据库本地数据库,我们后续有机会再为大家单独分享吧~ 2020年11月21日更新 paging3设计理念是建议对列表数据直接修改

3.3K10
领券