文章目录

  • 一、线性布局
    • 1、线性布局管理器 LinearLayoutManager
    • 2、垂直不翻转代码示例
    • 3、水平翻转代码示例
  • 二、完整代码示例
  • 三、RecyclerView 相关资料

本篇博客主要讨论设置不同的布局管理器 , 以及不同布局管理器的参数设置 , 基础用法参考 【RecyclerView】 一、RecyclerView 最基本用法 ( 添加支持库 | 设置布局文件 | 自定义适配器 ) , 以及 RecyclerView 专栏 ;

一、线性布局


1、线性布局管理器 LinearLayoutManager

使用代码创建 线性布局管理器 LinearLayoutManager , 推荐使用

LinearLayoutManager(Context context, @RecyclerView.Orientation int orientation, boolean reverseLayout)

构造函数 , 可以使用一行代码设置基本的 LinearLayoutManager 参数 ;

参数说明 :

① Context context : 当前的上下文对象, 用于获取资源.

② @RecyclerView.Orientation int orientation : 布局方向. 设置成 RecyclerView.VERTICAL 或 RecyclerView.HORIZONTAL.

③ boolean reverseLayout : 当设置成 true 时, 布局会翻转, 从尾部开始头部结束.

构造函数原型 :

    /*** @param context       当前的上下文对象, 用于获取资源.* @param orientation   布局方向. 设置成 RecyclerView.VERTICAL 或 RecyclerView.HORIZONTAL.* @param reverseLayout 当设置成 true 时, 布局会翻转, 从尾部开始头部结束.*/public LinearLayoutManager(Context context, @RecyclerView.Orientation int orientation,boolean reverseLayout) {setOrientation(orientation);setReverseLayout(reverseLayout);}

2、垂直不翻转代码示例

RecyclerView 适配器代码 : 【RecyclerView】 一、RecyclerView 最基本用法 ( 添加支持库 | 设置布局文件 | 自定义适配器 ) 三、自定义适配器 , 本篇博客中使用的适配器代码都是该代码 ;

初始化布局管理器及设置布局管理器 : 这里创建的 LinearLayoutManager 是标准的垂直方向列表 , 不翻转元素 ;

        //1 . 从布局中获取 RecyclerViewRecyclerView recycler_view = findViewById(R.id.recycler_view);//2 . 创建并设置布局管理器//创建布局管理器, 传入 上下文实例 , 方向 , 是否翻转 参数LinearLayoutManager layoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);//设置布局管理器recycler_view.setLayoutManager(layoutManager);//3 . 创建并设置列表适配器Adapter adapter = new Adapter();recycler_view.setAdapter(adapter);

运行效果 :

3、水平翻转代码示例

横向 , 翻转元素 的线性布局示例 : 翻转后 , RecyclerView 加载后 , 会自动跳转到最后一位的位置 ;

        //1 . 从布局中获取 RecyclerViewRecyclerView recycler_view = findViewById(R.id.recycler_view);//2 . 创建并设置布局管理器//创建布局管理器, 传入 上下文实例 , 方向 , 是否翻转 参数//LinearLayoutManager layoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);// 横向设置 , 翻转LinearLayoutManager layoutManager = new LinearLayoutManager(this, RecyclerView.HORIZONTAL, true);//设置布局管理器recycler_view.setLayoutManager(layoutManager);//3 . 创建并设置列表适配器Adapter adapter = new Adapter();recycler_view.setAdapter(adapter);

运行效果 :

二、完整代码示例


package kim.hsl.recyclerview;import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//1 . 从布局中获取 RecyclerViewRecyclerView recycler_view = findViewById(R.id.recycler_view);//2 . 创建并设置布局管理器//创建布局管理器, 传入 上下文实例 , 方向 , 是否翻转 参数LinearLayoutManager layoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);// 横向设置 , 翻转//LinearLayoutManager layoutManager = new LinearLayoutManager(this, RecyclerView.HORIZONTAL, true);//设置布局管理器recycler_view.setLayoutManager(layoutManager);//3 . 创建并设置列表适配器Adapter adapter = new Adapter();recycler_view.setAdapter(adapter);}/*** RecyclerView 适配器*/public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder> {@NonNull@Overridepublic ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {View root_view = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_recyclerview, parent, false);return new ViewHolder(root_view);}@Overridepublic void onBindViewHolder(@NonNull ViewHolder holder, int position) {holder.text.setText("" + position);}@Overridepublic int getItemCount() {return 10;}public class ViewHolder extends RecyclerView.ViewHolder {TextView text;public ViewHolder(@NonNull View itemView) {super(itemView);text = itemView.findViewById(R.id.text);}}}}

三、RecyclerView 相关资料


官方文档 :

使用 RecyclerView 创建动态列表 : https://developer.android.google.cn/guide/topics/ui/layout/recyclerview

高级 RecyclerView 自定义 : https://developer.android.google.cn/guide/topics/ui/layout/recyclerview-custom

代码示例 :

GitHub 源码地址 : https://github.com/han1202012/001_RecyclerView

博客源码快照 : https://download.csdn.net/download/han1202012/14938573

( 使用 Android Studio 打开 )

【RecyclerView】 三、RecyclerView 布局 ( 线性布局管理器 LinearLayoutManager )相关推荐

  1. 【RecyclerView】 四、RecyclerView 布局 ( 网格局管理器 GridLayoutManager )

    文章目录 一.网格局管理器 GridLayoutManager 二.网格局管理器默认设置 三.网格局管理器水平方向设置 四.完整代码示例 五.RecyclerView 相关资料 本篇博客主要讨论设置不 ...

  2. 安卓学习笔记08:常用布局 - 线性布局

    文章目录 零.学习目标 一.界面与布局概述 (一)界面 (二)布局 1.视图层次结构图 2.UI容器 (Container) 3.UI控件 (Control) 4.两种方式声明布局 二.线性布局概述 ...

  3. 布局——线性布局、相对布局

    Point 1 --------五大布局 1.相对布局(RelativeLayout) 顾名思义,通过组件之间的相对位置来进行布局,使用在此布局时,理清各个组件之间的位置关系非常重要. 相对布局按个子 ...

  4. Android布局——线性布局、相对布局、帧布局、表格布局、网格布局、约束布局

    1.概述 1.1 布局的作用:布局是对界面结构的全面规划和安排,通过api中提供的各种布局能够快速的完成对界面的设计和规划 1.2 布局的种类:线性布局(LinearLayout).相对布局(Rela ...

  5. Android常用布局-线性布局和相对布局

    1. 线性布局 LinearLayout 线性布局分为水平和垂直两个方向,优点是简单可嵌套,缺点是只能在一个方向进行布局,而且嵌套过多可能存在风险. 1. 标签:<LinearLayout /& ...

  6. Android Studio App开发之循环试图RecyclerView,布局管理器LayoutManager、动态更新循环视图讲解及实战(附源码)

    运行有问题或需要全部源码请点赞关注收藏后评论区留言~~~ 一.循环视图RecyclerView 尽管ListView和GridView分别实现了多行单列和多行多列的列表,使用也很简单,可是它们缺少变化 ...

  7. 【RecyclerView】 五、RecyclerView 布局 ( 瀑布流 | 交错网格局管理器 StaggeredGridLayoutManager )

    文章目录 一.交错网格局管理器 StaggeredGridLayoutManager ( 瀑布流 ) 二.交错网格局管理器默认设置 三.交错网格局管理器水平方向设置 四.完整代码示例 五.Recycl ...

  8. 【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity

    问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...

  9. 【JetPack】视图绑定 ( ViewBinding ) 各种应用 ( 视图绑定两种方式 | Activity 布局 | 对话框布局 | 自定义组件布局 | RecyclerView 列表布局 )

    文章目录 I . 视图绑定 ( ViewBinding ) 界面的两种方式 II . Activity 界面中 应用 视图绑定 ( ViewBinding ) III . Dialog 对话框界面中 ...

最新文章

  1. 10年IT老兵给新人程序员的几点建议
  2. 中科大博士带头搬砖!这家上市公司其实是最隐秘的AI高手
  3. 【技巧】Chrome应用技巧
  4. 电脑的引导启动快捷键
  5. RabbitMQ——事务
  6. JS实现文本全选并复制
  7. 2021-09-07912. 排序数组
  8. Ubuntu 10.04 安装 RTX 2009
  9. mysql hive 建表语句_关于Mysql元数据如何生成Hive建表语句注释脚本
  10. dart 爬取 妹子图 豆瓣影评
  11. Linux系统安装/卸载Anaconda3
  12. DelayQueue延时队列操作实例
  13. CIM一套完善的消息推送框架
  14. windows11右键一直转圈问题解决方法
  15. 关于轩辕剑3外传 swd3eDvd.exe报错问题
  16. 论文精度 —— 2018 CVPR《Generative Image Inpainting with Contextual Attention》
  17. STM32L031 HAL库读写内部EEprom
  18. 我国第一部计算机信息系统安全,《中华人民共和国计算机信息系统安全保护条例》中明确了我国计算机信息系统安全保护工作的重点是 - 作业在线问答...
  19. 与 Tita 一起玩转线上办公
  20. 什么是操作系统?操作系统的主要特性是什么?主要功能是什么?

热门文章

  1. JavaScript面向对象(一)——JS OOP基础与JS 中This指向详解
  2. linux 设置系统时间
  3. 关于js里的document.compatmode
  4. 模态框在IE下的问题,即position:fixed在IE下不兼容的处理方式
  5. 老李案例分享:Weblogic性能优化案例
  6. IOS7最新的系统漏洞
  7. 西电oj1066 费马小定理
  8. 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)
  9. iOS 多线程的简单理解(3)执行方式 + 执行对列 的组合
  10. 20161023 NOIP 模拟赛 T1 解题报告