RecyclerView实现吸顶效果项目实战(三):布局管理器LayoutManager-程序员宅基地

技术标签: 程序员  java  前端  开发语言  

LinearLayoutManager

LinearLayoutManager 是线性布局管理器,使用频率是最高的,展示的样式跟listview一模一样。 该类有3个构造方法:

LinearLayoutManager(Context context)

LinearLayoutManager(Context context,int orientation,boolean reverseLayout)

LinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr,int defStyleRes)

第一个构造方法内部调用了第二个构造方法,第二个构造方法参数的含义:

  • Context context :上下文,初始化时,构造方法内部加载资源用

  • int orientation :方向,垂直(RecyclerView.VERTICAL)和水平(RecyclerView.HORIZONTA ),默认为垂直.

  • boolean reverseLayout:是否倒序,设置为True,从最后一个item开始,倒序加载。此时,RecyclerView第一个item是添加进Adapter中的最后一个,最后一个item是第一个加进Adapter的数据,RecyclerView会自动滑到末尾,另外item整体是依靠下方的。如下

在这里插入图片描述

orientation也可以通过manger.setOritation()设置 reverseLayout,也可以通过manager.setReverseLayout()设置。setStackFromEnd(boolean stackFromEnd) 当设置为true时,列表便会从底部开始展示内容,RecycelrView会自动滑倒尾部。 这个方法和manager.setReverseLayout(true)共同点就是都自动滑动尾部,RecyclerView默认会展示末尾的item。差别在于,manager.setStackFromEnd(true)不会影响内部的数据顺序,怎么添加进Adapter的,就怎么展示。

scrollToPosition(int position)滑动到指定item linearLayoutManager.scrollToPositionWithOffset(int position,int offset)滑动到指定item,在这个基础上,又附加偏移了offset的距离。

获取当前RecyclerView首尾可见item的位置方法

  • findFirstVisibleItemPosition() 返回当前RecycelrView中第一个可见的item的adapter postion

  • findLastVisibleItemPosition() 返回当前RecycelrView中最后一个可见的item的adapter postion

  • findFirstCompletelyVisibleItemPosition() 返回当前RecycelrView中第一个完整可见的item的adapter postion

  • findLastCompletelyVisibleItemPosition() 返回当前RecycelrView中最后一个完整可见的item的adapter postion

这4个方法,只有当RecyclerView在屏幕展示出来后,才能得到正常的返回值,否则都是-1

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

文末

架构师不是天生的,是在项目中磨练起来的,所以,我们学了技术就需要结合项目进行实战训练,那么在Android里面最常用的架构无外乎 MVC,MVP,MVVM,但是这些思想如果和模块化,层次化,组件化混和在一起,那就不是一件那么简单的事了,我们需要一个真正身经百战的架构师才能讲解透彻其中蕴含的深理。

移动架构师

系统学习技术大纲

一线互联网Android面试题总结含详解(初级到高级专题)

image

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!**

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/2301_79655511/article/details/137908427

智能推荐

SLAM ORB-SLAM2(15)单应矩阵的计算和评分-程序员宅基地

文章浏览阅读9.6k次,点赞20次,收藏21次。单应矩阵的概念、计算原理和重投影误差评分

GCC编译及GDB调试_编译gcc gdb-程序员宅基地

文章浏览阅读737次。目录前言一、GCC编译1.编译链接流程二、使用步骤1.引入库2.读入数据总结前言记录GCC和GDB的学习笔记一、GCC编译1.编译链接流程以File.c为例子File.i : 经过编译预处理的源代码;File.s : 汇编处理后的汇编代码;File.o : 编译后的目标文件,即含有最终编译出的机器码,但它里面所引用的其他文件中函数的内存位置尚未定义File.out:可执行文件C源程序头文件-->预编译处理(cpp)-->编译程序-->优化程序-->汇编程_编译gcc gdb

contest12 CF514div2 ooxxx oooox ooooo-程序员宅基地

文章浏览阅读1.3k次。未写转载于:https://www.cnblogs.com/ikihsiguoyr/p/10372635.html

决策表,决策树_决策表 决策树-程序员宅基地

文章浏览阅读293次。决策表决策表 - 百度百科决策表又称判断表,是一种呈表格状的图形工具,适用于描述处理判断条件较多,各条件又相互组合、有多种决策方案的情况。精确而简洁描述复杂逻辑的方式,将多个条件与这些条件满足后要执行动作相对应。但不同于传统程序语言中的控制语句,决策表能将多个独立的条件和多个动作直接的联系清晰的表示出来决策树决策树 - 百度百科决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运_决策表 决策树

【论文解读】语义分割&医学图像分割论文合集-程序员宅基地

文章浏览阅读4k次,点赞18次,收藏171次。description: 整理自己看过和待看的一些主要关于图像分割包括其他领域的论文,不定时更新…综述篇Deep learning for cardiac image segmentation: A review [2019]Deep Semantic Segmentation of Natural and Medical Images: A Review [2019]Understanding Deep Learning Techniques for Image Segmentation

随便推点

作为硬件开发,你一定要知道开发板是个什么东西?陈老师带你了解_硬件工程师的芯片demo板 开发板-程序员宅基地

文章浏览阅读2.5k次,点赞3次,收藏12次。作为智能硬件开发,你一定要知道开发板是个什么东西?如果您有和智能硬件开发人员打交道,或者贵公司正好有智能硬件的开发需求,又或者你正在学习关于智能硬件方面的知识,那么你一定听过『开发板』这个词语。///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程和毕业设计指导,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像白色字体加我也能领取哦,记得口令陈老师///开发板(demoboard)是用来进行嵌入式系统开发的电路板,包括中央处理器、存储器、输入设备、输出设备、数据通路/总线和外部资源接口等_硬件工程师的芯片demo板 开发板

app渗透测试实战Getshell_渗透实战-程序员宅基地

文章浏览阅读7.5k次,点赞16次,收藏143次。分享一下今天对某app的合法渗透测试,从基础的信息收集到拿到网站的shell的过程。_渗透实战

找不到引用microsoft.office.core_未安装 office using microsoft.office.core-程序员宅基地

文章浏览阅读4.9k次。在一个比较大的.net程序编译中,报告错误,找不到引用microsoft.office.core,从程序下的文件夹下找也找不到 microsoft.office.core.dll文件,在office的安装文件夹下也找不到,重装了office也不行,后来上网找了找,才知道了 解决办法。在控制面板中,选择“添加删除程序”,找到office ,选择“更改”,在对话框中选择“添加删除功能”,然后选_未安装 office using microsoft.office.core

就这样我成了一名程序员_flyfish365-程序员宅基地

文章浏览阅读1.6k次。 6月份,毕业了,炎炎夏日加上几只属苍蝇的知了,我知道这些并不是自己心里烦躁的理由,长吸一口气,我的未来在哪里?问题找到了,但答案在哪里? 宿舍的几位同僚,义无反顾的整理好皮箱奔向大城市去打天下,送走他们,告别已经分手的女朋友,拿着自己的三证和一堆宝贝技术书籍,决定先回家。 家里永远都是最温暖的,回家后第一次见到我刚出生几个月的外甥,这小子可爱极了,老乐呵_flyfish365

【u-boot-2015.10源码分析】board_r.c_config_board_early_init_r-程序员宅基地

文章浏览阅读1.7k次。文章链接:https://blog.csdn.net/q_z_r_s机器感知一个专注于SLAM、机器视觉、Linux 等相关技术文章分享的公众号/* 最终进入命令解析模式 */DECLARE_GLOBAL_DATA_PTR;ulong monitor_flash_len;static int run_main_loop(void){#ifdef CON..._config_board_early_init_r

python计算机毕设【附源码】毕业设计选题管理系统(django+mysql+论文)-程序员宅基地

文章浏览阅读280次,点赞4次,收藏3次。通过使用前端技术HTML+CSS+JavaScript+Vue,后端技术Java+SSM,数据库MySQL5.7,以及开发工具Eclipse或IntelliJ IDEA,Tomcat7.0,JDK1.8,Maven3.3.9,可以实现一个功能完善、操作简便的毕业设计选题管理系统。在数据库管理工具的选择上,使用了Navicat 11,这是一个用户友好且功能强大的数据库管理软件,它支持多种数据库系统,包括MySQL,并提供了图形化界面,使得数据库的管理和维护工作更加便捷。

推荐文章

热门文章

相关标签