GridLayout 居中显示

2023-11-07

GridLayout 居中显示

如果大家有使用过GridLayout来给RecyclerView使用,会发现其实是没有居中的,而官方也没有给出居中的方法,这里就讲讲如何让其居中。

原理

要做的这一点其实很简单,只要我们自己计算每一个item的宽度即可。例如三列的结构,如果在宽度较小的情况下,会靠在左边显示,导致不居中,我们也不可能自己对着屏幕测量然后在xml中设置合适的宽度,这些工作应该由代码来为我们完成。由代码计算出合适的宽度值,然后赋予我们的item,这样item的宽度相同并且平分了屏幕就完成了居中的效果。

设置item宽度

看了上面的原理,所以实现居中有两个操作,第一个是我们能够设置item的宽度,第二个是计算item的宽度。我们先来进行设置宽度的代码编写。

对于item的管理,我们都知道是适配器完成的,所以对于宽度的管理我们也是在适配器中实现的。在设配器中定义一个私有变量 mItemWidth ,用于保存item的宽度,当我们计算完item的宽度后,来保存在这个变量中。对于一个item的宽度改变应该怎么做?很显然,是使用LayoutParams来动态改变item的宽度。那应该在哪修改呢?对适配器熟悉的同学,应该就会马上意识到在 onCreateViewHolder 这一函数中修改即可。

public void 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GridLayout 居中显示 的相关文章

随机推荐

  • Android屏幕适配(使用ConstraintLayout),kotlin数组排序

    教程如下 1 拉两根横向参考线分别定在20 65 博主计算所得 2 然后拉一个imageView进入布局 选择自己要显示的图片 3 将此imageView的上下参照物设置为两参照线 并将左右参照物设置为父容器 将其宽设置为wrap cont
  • pyspark结合hive使用 spark on hive方式开发代码附上代码实例

    1 在CDH中已经添加了hive 2 配置hive中的hive site xml参数 opt cloudera parcels CDH lib hive conf hive site xml 3 配置spark中的hive site xml
  • flask中ORM的使用

    目录 1 ORM是什么 2 flask sqlalchemy介绍及安装 3 设计数据库模型并创建表 4 使用ORM插入 修改 删除数据 5 使用ORM查询数据并展示 1 ORM是什么 对象关系的映射 它的作用是在关系型数据库和对象之间作一个
  • 前端三件套原理遗忘复习(一)

    1 BOM事件 事件就是用户或浏览器自身执行的某种动作 事件可能是用户在某些内容上的点击 鼠标经 过某个特定元素或按下键盘上的某些按键 事件还可能是 Web 浏览器中发生的事情 比如说 某个 Web 页面加载完成 或者是用户滚动窗口或改变窗
  • 在切瓦片时transform的包围盒会偏移一个位置,查看这个是否需要在坐标上减去该值,或者直接用tmspackage

    这个用apply transfrom 即可 因为transform后面addChild的是整个几何体 关键是如何判断整体的包围盒 所有的几何体包围盒 这样四叉树或者八叉树才行 如果说对单个模型的八叉树切片是对drawable的切片 那么多个
  • Android解决调用JNI报java.lang.UnsatisfiedLinkError: No implementation found for的错误

    最近公司项目需求接入即时通讯功能 现在第三方的即时通讯做的比较完善 接入也很方便 最近在调试语音的时候遇到了一个 so库加载失败的问题 在网上查看都是说由于原有项目的so库和新添加的model的so库数量不一致 具体报错如下 java la
  • 认真分析mmap:是什么 为什么 怎么用

    mmap基础概念 mmap是一种内存映射文件的方法 即将一个文件或者其它对象映射到进程的地址空间 实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系 实现这样的映射关系后 进程就可以采用指针的方式读写操作这一段内存 而系统会自动
  • oracle delete了数据表,吓死我了!!

    我用的是第一种方法 华丽分割线 一 根据时间来恢复 1 查询数据库当前时间 目的是为了检查数据库时间是否与你电脑时间相近 避免时间不同而将数据恢复到错误时间点 select to char sysdate yyyy mm dd hh24 m
  • Datawhale-数据类型、关键字、标识符

    Go 语言的空格 Go 语言中变量的声明必须使用空格隔开 如 var age int 语句中适当使用空格能让程序更易阅读 无空格 fruit apples oranges 在变量与运算符间加入空格 程序看起来更加美观 如 fruit app
  • Spring Bean xml定义说明

    转自 Spring Bean xml定义说明 在前一篇文章中 我们知道了Spring IoC容器管理的对象称之为 Spring Bean Spring Bean根据配置文件或注解创建 那么这个配置文件该如何编写呢首先Spring Bean的
  • 区间预测

    区间预测 MATLAB实现基于QRCNN BiGRU卷积双向门控循环单元多变量时间序列区间预测 目录 区间预测 MATLAB实现基于QRCNN BiGRU卷积双向门控循环单元多变量时间序列区间预测 效果一览 基本介绍 模型描述 程序设计 参
  • 三种振幅调制AM、DSB、SSB

    1 调制与解调 调制 用调制信号去控制载波信号的某一个参量的过程 解调 调制的逆过程 即从已调波中恢复原调制信号 2 振幅调制AM AM调幅波的数学表达式 波形 频谱 单一频率信号的频谱 限带信号调幅波的频谱 AM信号的生成原理框图 调幅波
  • 【山河送书第四期】:《Python之光:Python编程入门与实战》参与活动,免费送书五本!!

    山河送书第四期 Python之光 Python编程入门与实战 参与活动 免费送书五本 书本简介 本书亮点 配套丰富 购买链接 参与方式 往期赠书回顾 书本简介 作为一种极其流行的编程语言 Python已经成为了当今最为重要的生产力工具之一
  • Error: Rule can only have one resource source (provided resource and test + include + exclude)

    前言 vue3 0报错记录 报错描述和过程 1 在使用vue3 0的时候 经常会报错 vue loader v16 找不到 2 在使用中发现一个很奇怪的问题 刚报错找不到 vue loader v16 我使用 cnpm i save vue
  • 计算机桌面无法中英文切换,解决中文和英文无法正常切换问题

    近日多特小编的电脑系统重装了 安装上搜狗拼音输入法后 使用以前常用按键 ctrl space 切换中英文输入法状态 发现无法切换到英文输入状态 小编从网上寻找解决方法时 发现很多网友都遇到这个问题 网上的解决方法都不能解决问题 于是小编 决
  • Ubuntu 学习笔记

    1 实时监视系统log输出 tail f var log syslog 2
  • 学习 Python 之 Pandas库

    学习 Python 之 Pandas库 Pandas库 什么是Pandas库 DataFrame 创建和存储 1 使用DataFrame构造函数 1 使用列表创建 2 使用字典创建 3 从另一个DataFrame对象创建 2 从文件读取 1
  • 【正则表达式】去除首尾空格

    function Trim str return str replace s s g
  • 【华为oj】蛇形矩阵

    问题描述 题目说明 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形 样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 接口说明 原型 void GetResult int Num cha
  • GridLayout 居中显示

    GridLayout 居中显示 如果大家有使用过GridLayout来给RecyclerView使用 会发现其实是没有居中的 而官方也没有给出居中的方法 这里就讲讲如何让其居中 原理 要做的这一点其实很简单 只要我们自己计算每一个item的