学做网站的书哪些好定制网站报价
学做网站的书哪些好,定制网站报价,网页设计与制作源代码,教育网站前置审批系统入口我们从使用功能上去读取源码#xff0c;通常的用法是这个样子- 我们设置layoutmanager#xff0c;GridLayouManager 继承LinearLayoutManager#xff0c;所以我们就LinearLayoutManager 为基准查看rv.layoutManager GridLayoutManager(this,5)rv.addItemDecoration…入口我们从使用功能上去读取源码通常的用法是这个样子- 我们设置layoutmanagerGridLayouManager 继承LinearLayoutManager所以我们就LinearLayoutManager 为基准查看rv.layoutManager GridLayoutManager(this,5)rv.addItemDecoration(DividerItemDecoration(this,LinearLayout.VERTICAL))- kotlin 写法给数据源var result: List (1..1000).map { it.toString() }rv.adapter CustomAdapter(this, result as MutableList)recycler.png看复用机制的话我们从滑动看起。滑动的处理时间一般就在onTouchEvent 的 MotionEvent.Move事件看起入口滑动 Move 事件 -- scrollByInternal -- scrollStep -- mLayout.scrollVerticallyBy (RecyclerView 用了模板方法默认返回0所以我们看他的实现方法在LineaLayoutManager里面找)-- scrollBy --(consumed) fill -- (while循环)layoutChunk -- layoutState.next -- addView(view);layoutState.next -- getViewForPosition -- tryGetViewHolderForPositionByDeadline --tryGetViewHolderForPositionByDeadline 和缓存分析怎么从集合中去获取tryGetViewHolderForPositionByDeadline分几种情况去获取ViewHoldergetChangedScrapViewForPosition -- mChangeScrap 与动画相关getScrapOrHiddenOrCachedHolderForPosition -- mAttachedScrap 、mCachedViewsgetScrapOrCachedViewForId -- mAttachedScrap 、mCachedViews (ViewType,itemid)mViewCacheExtension.getViewForPositionAndType -- 自定义缓存 -- (使用情况局部刷新??)getRecycledViewPool().getRecycledView -- 从缓冲池里面获取RecycledViewPool -- 缓存池ViewHolder -- 包装View的 --- ItemView当没有缓存的时候--- mAdapter.createViewHolder --》 onCreateViewHolder多级缓存的目的 -- 为了性能创建ViewHolder 后 绑定 tryBindViewHolderByDeadline--》 mAdapter.bindViewHolder--》onBindViewHolder回收机制缓存机制回收(缓存)机制看这一个情况--- ViewHolderLinearLayoutManager.onLayoutChildren -- detachAndScrapAttachedViews -- scrapOrRecycleView-- 1.recycler.recycleViewHolderInternal(viewHolder); -- 处理 CacheView 、RecyclerViewPool 的缓存-- 1.ViewHodler改变 不会进来 -- 先判断mCachedViews的大小-- mCachedViews.size 大于默认大小 --- recycleCachedViewAt--- addViewHolderToRecycledViewPool --- 缓存池里面的数据都是从mCachedViews里面出来的-- 2.addViewHolderToRecycledViewPool -- getRecycledViewPool().putRecycledView(holder);-- scrap.resetInternal(); ViewHolder 清空-- 2.recycler.scrapView(view);recycler_cache.pngmCachedViews当前的大小 如果 大于等于mViewCacheMax(默认的CachedViews的大小)ViewType --缓存池 里面保存 只是 ViewHolder 类型 没有数据去查找缓存和复用的一种情况入口复用RecyclerView.onLayout -- dispatchLayout --》 dispatchLayoutStep2 --》 onLayoutChildren --》 fill缓存fill --recycleByLayoutState--recycleViewsFromStart -- recycleChildren-- removeAndRecycleViewAt -- recycler.recycleView-- recycler.recycleViewHolderInternal(viewHolder); -- 处理 CacheView 、RecyclerViewPool 的缓存
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89415.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!