1.避免引发全局layout刷新

【正确】

(1)设置固定的View大小的宽高

(2)通过修改Canvas位置并且调用

(3)通过设置一个是否允许requestLayout的变量,然后重写控件的requestlayout、onSizeChanged方法,判断控件的大小没有改变的情况下,当进入requestLayout的时候,直接返回而不调用super的requestLayout方法

(4)调用View的layout方法修改位置

2.以下关于Activity页面布局的做法

【正确】

(1)尽量少使用ViewGroup嵌套

(2)减少LinearLayout的嵌套层级

(3)同样UI,使用RelativeLayout替代LinearLayout以减少view层级

【错误】

(1)只要实现UI功能,不必关心ViewHirerachy

3.关于ViewHolder的说法

【正确】

(1)getView中需要更新ViewHolder的所有属性

(2)ViewHolder不仅适用于ListView的场景

(3)使用ViewHolder主要是为了避免多次创建view,降低内存占用并提升UI流畅度。

【错误】

(1)ViewHolder仅设置需要更新的属性即可

4.在ListView中加载图片时,需要注意

【正确】

(1)为了UI效率,应该把展示过的图片都缓存起来

(2)做好内存控制,避免内存溢出

(3)做好缓存以及淘汰机制,避免重复创建

(4)当图片不可见后,应该立即释放,避免内存占用过高

5.关于嵌套Fragment的说法

【正确】

(1)使用嵌套Fragment时应注意区分Activity的FragmentManager和宿主Fragment的FragmentManager,否则可能导致错误。

(2)嵌套Fragment的onActivityResult方法可能不会被正常调用

(3)为了避免复杂性和潜在bug,尽量不要使用嵌套Fragment

【错误】

(1)可以在xml文件中定义嵌套Fragment

6.在Activity未初始化完成时,显示PopupWindow或者Dialog会导致如下哪种异常?

【正确】

(1)BadTokenException

【错误】

(1)InflateException

(2)UnsupportedOperationException

(3)lllegaStateException

7.当添加Fragment时,以下做法

【正确】

(1)避免使用FragmentTransaction#commitAllowingstateLoss()

(2)FragmentTransaction#commit()调用时机不对可能会导致java.lang.lllegalStateException

(3)使用FragmentTransaction#commitllowingstateLoss()会导致用户UI状态丢失,降低用户体验

【错误】

(1)在Activity#onSaveInstancestate()方法之后调用FragmentTranscation#commit()没有问题

8.在文本大小设置中,使用以下哪种单位会使显示的字体大小受系统设置里字体大小的影响?

【正确】

(1)sp

【错误】

(1)px

(2)dp

(3)pt

9.以下哪种可能会造成内存问题

【正确】

(1)Application对象中存储大量缓存数据

(2)使用AnimationDrawable加载大量图片

【错误】

(1)使用Adapter时,使用了ViewHolder做缓存

(2)在布局设计时,不能使用Scrollview包裹ListView/GridView/ExpandableListView

10.以下关于使用DialogFragment替换Dialog的说法正确的()

【正确】

(1)DialogFragment可以便利的使用自定义Dialog和系统Dialog

(2)系统 Dialog在屏幕旋转的时候可能会导致内存泄漏

(3)DialogFragment便于代码解耦和复用

(4)DialogFragment可以借助FragmentManager自动管理对话框状态,比如屏幕旋转后Dialog状态的恢复

【错误】

(1)由于系统Dialog是独立于Activity的系统,管理状态复杂,代码量比较多

11.为便于随Activity生命周期管理对话框/弹出浮层的生命周期,推荐使用以下哪种view?

【正确】

(1)DialogFragment

【错误】

(1)PopupWindow

(2)AlertDialog

(3)Dialog

12.关于局部频繁刷新View,如何避免全局重新布局的做法

【正确】

(1)需刷新的View严格指明宽高,比如倒计时组件

(2)使用View#invalidate(int l,int t,int r ,int b)

(3)调用View#layout()方法更新位置,比如弹幕

(4)在某些局部刷新的场景下,强制关闭自定义View#requestLayout功能

13.在( )等组件中使用图片时,应做好图片的缓存,避免始终持有图片导致内存泄露引起的性能问题。建议使用开源或者封装的图片库。

【正确】

(1)ListView

(2)ViewPager

(3)RecyclerView

(4)GirdView

阿里 Android 多布局,阿里Android规范-05-UI与布局相关推荐

  1. 入职阿里一个月被迫转Android...

    大家好,我是会 Android 的程序员小菜鸡大海 . 有些同学问我,大海,你到底是写 c++ 的,还是写 Android 的. 不小心暴露自己了.两个语言我都略懂皮毛哈哈. 给大家说明下,我实习和阿 ...

  2. 安卓-Android如何集成支付宝支付(集成阿里支付)详解。Android接入alipay支付

    支付宝支付官网地址: 打开官网 服务器端如何拼接Orderinfo所需参数请看这篇文章.打开链接 安卓app集成阿里支付流程: 步骤一:下载aar和demo,并将aar添加到安卓项目依赖里.点击查看如 ...

  3. 物联网平台搭建的全过程介绍(五)——基于阿里云物联网平台的Android聊天app源码

    本例程Android源码请点此处免费下载 物联网平台搭建的全过程介绍(四)两台设备之间通过云数据流转实现远程通信之Android studio例程中介绍了两台Android设备通过物联网平台进行通信的 ...

  4. 【Android视频 之 阿里云视频播放器 二】

    说明一下:写文章时,我用的最新sdk版本是 4.7.0 哦,这里也只贴出关键代码,更多详细代码在文章末尾有地址链接的. [Android视频 之 阿里云视频播放器 一] 1 视频试看功能的实现 效果图 ...

  5. 【Android】使用阿里云直播实现手机直播功能

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.阿里云视频直播流程 二.录制直播推流步骤 1. 集成说明 通过本地依赖方式集成SDK 通过Maven依赖方式集成S ...

  6. Android开发-在Android里接入阿里云推流SDK实现直播推流的功能

    前 言 如今,在国内移动互联网发展了几年的时间,移动开发技术也相对的成熟,在咱们日常使用的手机App中也少不了直播的功能,不管是娱乐类.游戏类.体育类还是教育类等的App都会有直播的功能,可以说直播的 ...

  7. android 阿里 插件,堪比阿里插件的Android Studio插件集合(IDE通用)(上)

    点击上方蓝字关注码个蛋 除阿里插件之外这些好用的插件你知道吗? 作者博客 http://www.jianshu.com/u/f408bdadacce 文章目录 生成java文件,xml布局和生成资源文 ...

  8. 阿里、腾讯大厂Android面试必问知识点系统梳理,满满干货指导

    前言 金三银四,又是一年校招季. 经历过,才深知不易.最近,和作为校招面试官的同事聊了聊,问他们是如何去考察一个学生的,我简单归为以下几点: 聪明.反应快,这点自不必说,聪明意味着学习能力.适应力强, ...

  9. android studio编写阿里云物联网APP的基本步骤(附CSDN视频教程链接)

    摘要:本文介绍一下物联网APP的制作基本步骤,并附CSDN视频课链接,可以在短时间内制作出属于自己的APP.其实制作物联网APP的步骤其实并不复杂,但是有一个思路要大家转变:物联网APP的核心是通过h ...

  10. Android Studio 连接阿里云数据库【制作基于数据库的多人远程聊天APP】

    Android Studio 连接阿里云数据库的简单方法[制作基于数据库的多人远程聊天APP] 首先购买好一个阿里云数据库RDS[我买了一年用了49元] 1.进入官网–>打开右上角的控制台 2. ...

最新文章

  1. c# socket 解决粘包,半包
  2. php 控件 手机触控,html5手机触屏touch事件的详细介绍
  3. C++类中成员变量的初始化有两种方式
  4. JZ2440学习总结3
  5. MOTOMAN-SV3X运动学建模验证图
  6. Settings【学习笔记05】
  7. java 二分查找 排序_java 冒泡排序 二分查找
  8. 计算机桌面程序名,深度技术win7旗舰版电脑桌面图标只显示名称了怎么办
  9. python matlablib安装踏坑记
  10. 使用mysql5.7.10
  11. 亚马逊结算一览(C#项目)
  12. 云上发展,唯快不破!IT部门是数字化转型的变革者 | 凌云时刻
  13. 【Python】利用滑动窗口计算全基因组每个窗口上CNV的拷贝数和Vst
  14. 【论文学习笔记-2】高分辨率3D深度重建
  15. android ogg转mp3,MP3提取转换器
  16. 英语高考计算机阅读答案解析,2021考研英语一阅读理解试题及答案解析(中公考研版)...
  17. [学点英语]一些常见的英语词汇缩写及读音纠正
  18. 2020ICPC济南K Kth Query
  19. 灰光和彩光_通信行业5G招标系列点评之二:一文读懂5G,前传招标,光纤、灰光光模块、彩光光模块、CWDM、MWDM、LWDM...
  20. VB.NET邮件群发纯htlm二维码

热门文章

  1. 2022最强金九银十软件测试自动化测试,建议进收藏夹
  2. 夏天来了,将迎来最畅销的格力空调
  3. Win10+HP Officejet Pro 6830 安装打印机
  4. mvc5 + ef6 + autofac搭建项目(repository+uow)(一)
  5. FTP下文件夹权限的设置755,766,777,644代表什么意思
  6. 开启Python学习之路 必知必会的知识!
  7. 2021年安全员-C证考试资料及安全员-C证免费试题
  8. make make install的意思
  9. 高等数学——常考公式(1)
  10. Win10正式版激活