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

已中招!Android 基础面试常常吊死在这几个问题上……

10、面试官:当旋转屏幕时,Activity如何响应? 11、面试官:你是如何做到旋转屏幕时防止数据重新加载和重置的? 12、面试官:说一下AsyncTasks和线程他们的区别!...应聘者:旋转屏幕时,当前的 Activity 实例将被破坏,并以新的方向创建Activity的新实例。旋转屏幕时,由于屏幕旋转时会重新创建布局,将首先调用onCreate() 方法。...第三波 11、面试官:你是如何做到旋转屏幕时防止数据重新加载和重置的?...RecyclerView显示较长的项目列表。假设我们要显示100行项目。一种简单的方法是只创建100个视图,每行一个视图,然后将它们全部布局。...但这是浪费的,因为在任何时间点上,只有10个左右的项目可以放在屏幕上,而其余项目则不在屏幕上。因此, RecyclerView 只创建屏幕上的10个左右的视图。这样,速度和内存使用率将提高10倍。

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

vivo官网APP全机型UI适配方案

3.2.3 PAD机型适配方案骨骼图pad平板,屏幕旋转,并且旋转的宽高比差异较大,纵向时,宽高比是5 : 8,横向时,宽高比是8 : 5。...3.3 方案落地规范3.3.1 一套代码适配所有机型确定一个apk能不能适配所有机型,首先要解决的是要符合不同机型的特性,比如直板手机只能纵向显示,折叠屏和pad支持横竖屏旋转。...图片也做了对应的放大,保证横向上可以填充整个屏幕的宽度。(4)为了形象地表示处理的效果,看下下面的示意图即可。...(4)为了形象地表示处理的效果,看下下面的示意图即可。3.3.4 无感刷新无感刷新,主要是体现在折叠屏的内外屏切换,pad的横竖屏旋转这些场景,如何保证页面不会出现切换、旋转时候的闪现呢?...屏幕类型切换-数据源切换-更新RecyclerView

1.5K30

Android开发常用的知识点

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//竖屏 因为横屏有两个方向的横法,而这个设置横屏的语句,如果不是默认的横屏方向,会把已经横屏的屏幕旋转...所以可以先判断是否已经为横屏了,如果不是再旋转,不会让用户觉得转的莫名其妙啦!...如果用户旋转设备这屏幕会横竖屏切换 nosensor–忽略物理感应器,这样就不会随着用户旋转设备而更改了(”unspecified”设置除外) 移除 View 的背景色 setBackgroundResource...stateAlwaysHidden 当该Activity主窗口获取焦点时,软键盘总是被隐藏的,不管是确认导航到该Activity还是Activity被覆盖显示出来。...stateAlwaysVisible 当该Activity主窗口获取焦点时,软键盘总是显示的,不管是确认导航到该Activity还是Activity被覆盖显示出来。

2.5K10

仿触手直播首页切换效果

触手app主页效果图 看到这个效果图,第一想到的就是RecyclerView貌似可以实现这种效果,但是用RecyclerView自己的api还是有很多问题的,先不说如何实现的吧,看下实现出来的效果图吧...item在屏幕的上面显示,第一个item在屏幕显示,第二个item到倒数第二个item在屏幕的下面显示。...所以手机上面显示的永远是RecyclerView中第一个item了,只不过在手指滑动的时候,去改变数据源。 ? ?...这里看似代码这么长,其实是在下拉的时候,获取到的nextView对应的是屏幕上方的item,也就是RecyclerView的最后一个item,因为最后一个item是放在了屏幕的上面;在上拉的时候,获取到的...nextView对应的是屏幕下方的item,也就是RecyclerView的第二个item。

53320

项目需求讨论- 自定义滚轮(第二波新实现)

我们的RecyclerView 是只会加载界面当前显示的Item,然后不管数量再多,也只是在复用相同的View而已。这样我们上面的问题不就解决了。...---- 滚动调整距离让RecyclerView 滚到特定的position位置: 我简单介绍,就只分二种情况来谈下(正好滑到一个标准的距离,让Item正好完全显示这种情况我就去除了): 顶部的Item...有小于一半ItemHeight的距离滚到了屏幕的外面: ?...这时候大家也知道,应该是让当前的屏幕内获取到的first Item 滚动出界面,所以大家一想就说获取第一个Item的Position值,然后调用RecyclerView.smoothScrollToPosition...但是结果是不会滚动,原来这个方法当我们的Position + 1已经出现在屏幕上了。不管是不是第一个,不管处于屏幕的哪个位置,这个RecyclerView就不会滚动。我忍不住又一句 WHF!!。

1.1K20

mini DSO STC15 开源示波器

:设定电压量程上限,最大30V,顺时针旋转编码器将电压上限设置为0则进入自动量程,逆时针旋转进入手动量程 触发值:设定触发电压值,触发位置被放在屏幕中心 触发方向:上下箭头...,屏幕左侧显示Fail标志 Normal(普通触发):等待预采样,待指示灯亮起表示预采样结束,这时可以输入信号; 触发成功...,显示波形,并继续等待下次触发; 如果有新的触发成功,则自动显示新的波形,如没有新的触发成功则屏幕波形保持并一直等待下次触发;...需注意设置正确的触发值,否则一直处于等待触发状态,屏幕不会显示波形 Single(单次触发):等待预采样,待指示灯亮起表示预采样结束,这时可以输入信号;...触发成功显示波形,并停止采样,需用户单击编码器开始下次采样 需注意设置正确的触发值,否则一直处于等待触发状态,屏幕不会显示波形

1.1K30

recycleview的优化_recyclerview原理

,但是第二个feed之 的滚动是流畅的,因为这个时候RecyclerView已经有能重用的view了。...数据显示分两个阶段: 1)在UI线程,处理输入事件、动画、布局、记录绘图操作,每一个条目在进入屏幕显示前都会被创建和绑定view; 2)渲染(Render)线程把指令送往GPU。...,滑动暂停再加载;RecyclerView中存在几种绘制复杂,占用内存高的楼层类型,但是用户只是快速滑动到底部,并没有必要绘制计算这几种复杂类型,所以也可以考虑对滑动速度,滑动状态进行判断,满足条件再加载这几种复杂的...onViewAttachedFromWindow(): RecyclerView的item进入屏幕时回调 onViewDetachedFromWindow():RecyclerView的item移出屏幕时回调...因为RecyclerView.setAdapter就设置了观察者,设置了观察者stateIds就不能变了。

3.6K20

RecyclerView的复用机制

想一想也很容易明白,屏幕显示多少ViewHolder,是无法确定的。并且ViewHolder既然都已经显示了,mAttachedScrap也不会造成额外的内存占用。...也就是说,只能是RecyclerView的ViewHolder被滑出屏幕后,再滑回来显示的情景。 也不难看出,从mCachedViews中,我们取得的ViewHolder是不需要重新绑定数据的。...mAttachedScrap和mChangedScrap,是缓存的屏幕上的可见内容。它本身的大小是无限的,因为屏幕显示多少item是无法限制的,这一层缓存并不会带来额外的缓存。...也就是说,它只能缓存已经显示过的ViewHolder。显而易见,它的主要作用是让已经显示过的ViewHolder需要再次显示时,能够快速显示。...也就是说,它保持着onCreateViewViewHolder最初的状态。

1.2K20

Android 掉帧优化

对于传统的60刷新率手机来说,每16ms会发出一个VSync信号,复制CPU/GPU放在缓存中的图像,再通知CPU/GPU计算下一帧要显示的内容,再把刚复制的图像显示屏幕上,这就是一个屏幕刷新周期。...运行程序打开Profile,可以看到CPU、MEMORY、NETWORK和ENERGY四个动态图表,点击CPU,下方出现CPU Profile界面,如下所示,点击"record"即可开始记录,点击"...stop"得到这一段时间内的方法调用栈。...得到方法调用栈信息,先从"Flame Chart"模式来看热点方法,很明显sleep函数耗时较多。...ViewStub是布局文件中的占位符,对于某些在特殊场景下才需要显示的控件,可以先用ViewStub代替,等到需要显示时再加载。

1.6K40

Android RecyclerView之粘性头部+点击事件

实现上图列表的粘性头部功能一般通过在布局页面额外写粘性头部View,然后通过监听列表的滑动来控制显示隐藏粘性头部View。...如下图所示: #######onDraw(Canvas c, RecyclerView parent, State state) 这个方法可以实现类似绘制背景的效果,绘制的东西是显示在item的下层,一般配合...的滚动分为两个阶段,手指在屏幕上列表的scroll和手指离开屏幕列表的fling,这两个阶段最终都会执行下面这段代码: if (!...state) { super.onDrawOver(c, parent, state); //mHeaderRects为存放屏幕显示的header的点击区域,每次重新绘制头部的时候清空数据..., RecyclerView.State state) { super.onDrawOver(c, parent, state); //mHeaderRects为存放屏幕显示

4.2K40

ListView 和 RecyclerView 的对比分析

列表数据显示如下图 : 网络图片 早期Android开发都会使用ListView来展示数据,然而现在用的已经比较少了,更多的时候都是使用RecyclerView替代ListView进行表格数据的展示,...3,ListView实现了两级缓存,提升view性能 布局 ListView 系统api只提供了纵向列表显示,无法显示横行或者网格布局等 ViewHolder机制 ListView 没有默认实现ViewHolder...ListView缓存示意图 ActiveViews:屏幕中可见View的缓存 ScrapViews:顾名思义是已废弃的View的缓存,也就是item在滑出界面View会被存放到ScrapViews中...RecyclerView 相比ListView, RecyclerView在设计上考虑了更方便的扩张,同时性能上也进行了更多的优化 1,RecyclerView支持3种布局(LinearLayoutManager...缓存的是屏幕中可见的ViewHodler数据,(通过postion来查找) CachedCiews:第二级缓存,将刚刚移出屏幕的item放入这里(默认2个),通过postion来查找。

83840

浅谈RecyclerView的性能优化

(2)如果是RecyclerView滚动情况下缓存(比如滑动列表),在滑动时填充布局。 先移除滑出屏幕的item,第一级缓存mCachedViews优先缓存这些ViewHolder。...如果没有就再去mAttachedScrap和mCachedViews中精确查找(先positionid)是不是原来的ViewHolder。...缓存机制总结 RecyclerView最多可以缓存 N(屏幕最多可显示的item数【Scrap缓存】) + 2 (屏幕外的缓存【CacheView缓存】) + 5*M (M代表M个ViewType,缓存池的缓存...对于可能来回滑动的RecyclerView,把CacheViews的缓存数量设置大一些,可以省去ViewHolder绑定的时间,加快布局显示。...当RecyclerView的元素比较高,一屏只能显示一个元素的时候,第一次滑动到第二个元素会卡顿,这个时候就需要预留的额外空间,让RecyclerView预加载可重用的缓存。

1.6K10
领券