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

ApacheCN 安卓译文集 20211225 更新

安卓编程初学者手册中文第三版 零、前言 一、初学安卓和 Java 二、第一次接触:Java、XML 和 UI 设计师 三、探索 AndroidStudio 和项目结构 四、布局和材质设计入门 五、卡片视图和滚动视图的漂亮布局...决策与循环 九、学习 Java 方法 十、面向对象编程 十一、更多面向对象编程 十二、栈、堆和垃圾收集器 十三、匿名类——让安卓小部件活起来 十四、安卓对话框窗口 十五、数组、地图和随机数 十六、适配器和回收器...、XML 和用户界面设计器 三、探索 AndroidStudio 和项目结构 四、布局和材质设计入门 五、卡片视图和滚动视图的漂亮布局 六、安卓的生命周期 七、Kotlin 变量、运算符和表达式 八、Kotlin...、多种布局和片段 二十五、带分页和滑动的高级用户界面 二十六、带有导航抽屉和片段的高级用户界面 二十七、安卓数据库 二十八、临别赠言 如何使用 Kotlin 构建安卓应用 零、前言 一、创建您的第一个应用...二、构建用户屏幕流 三、用片段开发用户界面 四、构建应用导航 五、基本库:RetroFit 库、Moshi 库和 Glide 库 六、回收视图 七、安卓权限和谷歌地图 八、服务、工作管理器和通知 九

7.1K20

AndroidStudio 开发基础知识【翻译完成】

十二、了解安卓应用和活动生命周期 十三、处理安卓活动状态变化 十四、安卓活动状态变化示例 十五、保存和恢复安卓活动的状态 十六、了解安卓视图视图组和布局 十七、AndroidStudio 布局编辑器工具指南...四十五、运动布局的关键周期教程 四十六、使用浮动动作按钮和 Snackbar 四十七、使用表格布局组件创建选项卡式界面 四十八、使用回收视图和卡片视图小部件 四十九、安卓回收视图和卡片视图教程 五十、...简介 十二、Kotlin 数据类型、变量和可空性 十三、Kotlin 算子和表达式 十四、Kotlin 流量控制 十五、Kotlin 函数和 Lambdas 概述 十六、Kotlin 的面向对象编程基础...十七、Kotlin 继承与子类化简介 十八、安卓视图绑定概述 十九、了解安卓应用和活动生命周期 二十、处理安卓活动状态变化 二十一、安卓活动状态变化示例 二十二、保存和恢复安卓活动的状态 二十三、了解安卓视图...、使用浮动动作按钮和 Snackbar 五十三、使用表格布局组件创建选项卡式界面 五十四、使用回收视图和卡片视图小部件 五十五、安卓回收视图和卡片视图教程 五十六、布局编辑器示例数据教程 五十七、使用应用栏和折叠工具栏布局

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

Kotlin入门(23)适配器的进阶表达

前面在介绍列表视图和网格视图时,它们的适配器代码都存在视图持有者ViewHolder,因为Android对列表类视图提供了回收机制,如果某些列表项在屏幕上看不到了,则系统会自动回收相应的视图对象。...随着用户的下拉或者上拉手势,已经被回收的列表项要重新加载到界面上,倘若每次加载都得从头创建视图对象,势必增加了系统的资源开销。...现在由Kotlin实现循环视图的适配器类,综合前面两小节提到的优化技术,加上视图持有者的自动重用,适配器代码又得到了进一步的精简。...为方便理解循环适配器的Kotlin编码,下面以微信的公众号消息列表为例,给出对应的消息列表Kotlin代码: //ViewHolder在构造时初始化布局中的控件对象 class RecyclerLinearAdapter...对于第一个的布局编码,可以考虑将其作为一个整型的输入参数;对于第二个的数据结构,可以考虑定义一个模板类,在外部调用时再指定具体的数据类;对于第三个的bind方法,若是Java编码早已束手无策,现用Kotlin

1.8K41

Android:Jetpack之视图绑定——ViewBinding

→可观察的数据持有者类,与常规Observable不同,它是具有生命周期感知的; Navigation→应用内导航,Fragment的管理框架,或者说路由; Paging→列表分页,可以轻松实现分页预加载以达到无限滑动的效果...本节开始折腾,先带来一个超简单的 → ViewBinding(视图绑定)。... 编译,AGP会为Module中包含的XML布局文件生成一个绑定类,类名规则: XML文件名转换为Pascal大小写,并加上Binding,比如:result_profile.xml...val view = binding.root // 3、让根视图称为屏幕上的活动视图 setContentView(view)...] 基础用法很简单,也很好上手,但存在下述问题: 需重复编写:创建和回收ViewBinding实例的样板代码,特别是Fragment,还要手动置空。

1.2K30

Android:Jetpack之视图绑定——ViewBinding

→可观察的数据持有者类,与常规Observable不同,它是具有生命周期感知的; Navigation→应用内导航,Fragment的管理框架,或者说路由; Paging→列表分页,可以轻松实现分页预加载以达到无限滑动的效果...本节开始折腾,先带来一个超简单的 → ViewBinding(视图绑定)。... 编译,AGP会为Module中包含的XML布局文件生成一个绑定类,类名规则: XML文件名转换为Pascal大小写,并加上Binding,比如:result_profile.xml...val view = binding.root // 3、让根视图称为屏幕上的活动视图 setContentView(view)...] 基础用法很简单,也很好上手,但存在下述问题: 需重复编写:创建和回收ViewBinding实例的样板代码,特别是Fragment,还要手动置空。

99730

Android Compose开发

好处 Compose 编译不是转化为原生的 Android 上的 View 去显示,而是依赖于平台的Canvas ,在这点上和 Flutter 有点相似,简单地说可以理解为 Compose 是全新的一套...这里可以类比下 kotlin 中 suspend 挂起函数的用法,其用法是相似的。 布局 Compose 通过只测量一次子项来实现高性能。...LazyListScope). itemsIndexed (kotlin. collections. List, kotlin. Function2, kotlin....您可以使用修饰符来执行以下操作: 更改可组合项的大小、布局、行为和外观 添加信息,如无障碍标签 处理用户输入 添加高级互动,如使元素可点击、可滚动、可拖动或可缩放 修饰符是标准的 Kotlin 对象。...如果设置一个较大的正值,则视图将显示在其他视图的上方。如果设置一个较小的负值,则视图将显示在其他视图的下方。当两个视图的 zIndex 相同时,它们将按照它们在布局文件中的顺序进行绘制。

21210

Flutter 高性能原理浅析

Dart 垃圾回收机制 Dart的垃圾回收也采用了多生代算法,新生代在回收内存时采用了“半空间”算法,触发垃圾回收时Dart会将当前半空间中的“活跃”对象拷贝到备用空间,然后整体释放当前空间的所有内存如图...我们都知道显示器以固定的频率刷新,比如 iPhone的 60Hz、iPad Pro的 120Hz。...当一帧图像绘制完毕准备绘制下一帧时,显示器会发出一个垂直同步信号(VSync),所以 60Hz的屏幕就会一秒内发出 60次这样的信号。...Flutter只关心向 GPU提供视图数据,GPU的 VSync信号同步到 UI线程,UI线程使用 Dart来构建抽象的视图结构,这份数据结构在 GPU线程进行图层合成,视图数据提供给 Skia引擎渲染为...你还不知道Kotlin Coroutine? END

2.3K31

DataBinding最全使用说明

} } 简化用法只需要数据模型继承BaseObservable即可, 然后每次变更数据调用notify()函数既可以刷新视图...., 数据并不会跟随视图刷新....视图刷新数据 通过表达式使用@=表达式就可以视图刷新的时候自动更新数据, 但是要求数据实现以下两种方式修改才会触发刷新 <EditText android:layout_width="match_parent...Model层 return text.toString() } 不允许存在更多参数 返回值类型必须是绑定的数据类型 notify函数 <em>视图</em>变化<em>后</em>要通知Databinding开始设置Model层...InverseBindingAdapter <em>视图</em>通知数据<em>刷新</em>的 InverseBindingMethod/InverseBindingMethods <em>视图</em>通知数据<em>刷新</em>的(如果存在已有getter方法可用的情况下

2K20

RecyclerView 刷新列表数据的 notifyDataSetChanged() 为什么是昂贵的?

} } ... } } 在将一切都无效化,调用了View.requestLayout(),即请求重新布局,该请求会不断地向父控件传递,一直传到 DecorView...ViewRootImpl 收到重绘请求调用scheduleTraversals()来触发一次从根视图开始的重绘。重绘任务被包装成一个 Runnable 交由Choreographer暂存。...因为在重新布局之前表项都被添加了FLAG_INVALID标志位,只要表项未被移除,它们都会被回收到缓存池 RecyclerViewPool 中。(从 Profiler 调用链中也得到了证实。)...RecyclerView.requestLayout()是驱动列表刷新的源头。调用该方法,会从根视图自顶向下地进行重绘。RecyclerView 的重绘表现为重新布局所有表项。...RecyclerView 重新布局表项是这样进行的:先回收现存表项到缓存池,再重新填充它们。

3.1K20

Android RecyclerView八个必会的面试技巧

复杂布局: 支持不同的LayoutManager,可以实现线性、网格、瀑布流等多种复杂布局。 滑动性能优化: 通过异步加载和局部刷新等手段,提升滑动的流畅度。...ViewHolder模式: 使用ViewHolder来缓存视图,减少View的创建和销毁次数,从而提高性能。 异步加载: 在加载大数据集合时,使用异步加载或分页加载来避免主线程阻塞,提高用户体验。...局部刷新: 使用notifyItemChanged等局部刷新方法,避免整体刷新,提高效率。...出发点: 面试官关心你对RecyclerView如何管理和重用视图的理解。 参考简答: ViewHolder模式: RecyclerView使用ViewHolder模式来缓存视图。...Recycler池中维护了一个可回收的ViewHolder队列,通过这个池来快速获取可重用的ViewHolder。

19620

《Android编程权威指南》之Android开发初体验

创建字符串资源推荐把字符串都定义在app/res/values/string.xml文件 预览界面布局 写完布局文件,旁边可以预览效果 截图 从布局 XML 到视图对象 java目录是项目全部Java...(Kotlin)源代码的存放处。...activity子类的实例被创建,onCreate(Bundle)方法被调用,并通过调用setContentView()方法获取管理属于自己的用户界面,根据传入的布局资源ID,生成指定布局视图并将其放置在屏幕上...修改布局或字符串等资源,R.java文件不会实时刷新。 代码中引用资源可用 setTitle(R.string.app_name); 这种方式。...编译过程 xml 布局文件转化成 view对象过程:aapt(Android Asset Packaging Tool)将布局文件资源编译压缩紧凑,打包到.apk文件中。

1.2K20

毕业设计So Easy:Java Web图书推荐系统平台

这样,能够即时的回收过期的SqlSession,防止大量无用的session占用数据库资源。...可是在实际中却发现,如果用户刷新页面,或者点击分页按钮,系统会抛出错误,说数据库已关闭,无法执行查询操作。...5.3、视图视图使用jsp作为页面,引入了JSTL的c库来辅助生成布局。 header.jsp为页面顶端的logo、搜索栏与登录注册按钮的部分。footer.jsp为页面底部版权信息的内容。...通过AJAX请求来局部刷新,减少流量。...一部分布局是由自定义的main.css文件来定制。而自定义的JavaScript也由在footer中引入的main.js来定制那些比如搜索按钮点击事件、分页按钮点击事件、登录等等。

21150

RecyclerView面试宝典:7大高频问题解析,面试必备!

这些ViewHolders没有被完全回收,仍然保持与RecyclerView的连接。...问题: 请解释一下RecyclerView的局部刷新机制 出发点: 考察面试者对局部刷新的核心实现原理的理解 参考简答: 涉及核心组件: Adapter:负责提供ViewHolders和绑定数据到这些视图上...LayoutManager:负责Item的布局回收策略。当数据发生变更时,LayoutManager决定哪些视图需要被重新布局,哪些可以保持不变。...局部刷新的实现流程: 变更通知处理:RecyclerView接收到Adapter的变更通知,标记相应的视图位置需要更新。...视图更新:ViewHolder绑定了新数据,RecyclerView利用ItemAnimator来处理这些变更的动画效果,如淡入淡出或滑动效果,最终呈现给用户。

14000

精选Android中高级面试题:性能优化,JNI,设计模式

在非必要的情况下可以把加载延后或则开启子线程处理 另外,影响界面卡顿的两大因素,分别是界面绘制和数据处理: 布局优化 (使用 include,merge 标签,复杂布局推荐使用 ConstraintLayout...: ListView 中通常刷新数据是用全局刷新 notifyDataSetChanged (),这样一来就会非常消耗资源;本身无法实现局部刷新,但是如果要在 ListView 实现局部刷新,依然是可以实现的...MVC: 视图层 (View) 对应于 xml 布局文件和 java 代码动态 view 部分 控制层 (Controller) MVC 中 Android 的控制层是由 Activity 来承担的,Activity...本来主要是作为初始化页面,展示数据的操作,但是因为 XML 视图功能太弱,所以 Activity 既要负责视图的显示又要加入控制逻辑,承担的功能过多。...推荐文章:RxJava+OkHttp+Retrofit+Dagger2+MVP 框架 (kotlin 版本)(https://juejin.im/post/5c6e601cf265da2dc675b69e

2.6K30

精选Android中高级面试题 (四):性能优化,JNI,设计模式

在非必要的情况下可以把加载延后或则开启子线程处理 另外,影响界面卡顿的两大因素,分别是界面绘制和数据处理: 布局优化 (使用 include,merge 标签,复杂布局推荐使用 ConstraintLayout...: ListView 中通常刷新数据是用全局刷新 notifyDataSetChanged (),这样一来就会非常消耗资源;本身无法实现局部刷新,但是如果要在 ListView 实现局部刷新,依然是可以实现的...MVC: 视图层 (View) 对应于 xml 布局文件和 java 代码动态 view 部分 控制层 (Controller) MVC 中 Android 的控制层是由 Activity 来承担的,Activity...本来主要是作为初始化页面,展示数据的操作,但是因为 XML 视图功能太弱,所以 Activity 既要负责视图的显示又要加入控制逻辑,承担的功能过多。...MVP:通过引入接口 BaseView,让相应的视图组件如 Activity,Fragment 去实现 BaseView,实现了视图层的独立,通过中间层 Preseter 实现了 Model 和 View

1.1K30

Android界面性能优化必读

1.4 垃圾回收 垃圾回收器是一个在应用运行期间自动释放那些不再引用的内存的机制,常称 GC 。频繁的 GC 也是导致严重性能问题的罪魁祸首之一。...比 Dalvik 虚拟机有很大的性能提升; ART 虚拟机相对于 Dalvik 虚拟机来说的垃圾回收来说有一个很大的性能提升,但 2 – 3 ms 的回收时间对于超过16ms帧率的界限也是足够的。...,而界面的显示是进行完这些操作才会显示的,所以每一步操作的时间增长,最终显示的时间就会越长。...[1240] 当你看到红色的线较高的时候,可能是由于你的视图重新提交了需要重新绘制导致的(比如屏幕从竖屏旋转成横屏当前界面重新创建),或者是自定义的视图很复杂,绘制起来很麻烦,导致耗时过长。...相对布局 RelativeLayout 比较耗资源,因为一个相对布局 RelativeLayout 需要两次度量来确保自己处理了所有的布局关系,而且这个问题会伴随着视图层级中的相对布局 RelativeLayout

4.6K10
领券