Android中GridView布局实现整体居中方法示例

发布时间 - 2026-01-11 03:08:50    点击率:

前言

本文主要给大家介绍了关于Android中GridView布局整体居中的相关内容,是对于自己在项目中遇到问题的一个记录,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

效果图:

示例代码:

/**
  * 对高度和宽度进行统计 然后设置gridView的宽高。
  * @param numColumns 设定行数
  * @param gridView 
  */
public static void calGridViewSumWH(int numColumns ,GridView gridView) {
  // 获取GridView对应的Adapter
  ListAdapter listAdapter = gridView.getAdapter();
  if (listAdapter == null) {
   return;
  }
  int totalHeight = 0;
  int totalWidth = 0;
  for (int i = 0, len = listAdapter.getCount(); i < len; i++) { // listAdapter.getCount()返回数据项的数目
   View listItem = listAdapter.getView(i, null, gridView);
   listItem.measure(0, 0); // 计算子项View 的宽高
   totalWidth = listItem.getMeasuredWidth();
   if ((i+1)%numColumns == 0) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
     totalHeight += listItem.getMeasuredHeight() + gridView.getVerticalSpacing(); // 统计所有子项的总高度
    } else {
     totalHeight += listItem.getMeasuredHeight();
    }
   }

   if ((i+1) == len && (i+1)%numColumns != 0) {
    totalHeight += listItem.getMeasuredHeight(); // 统计所有子项的总高度
   }
  }
  if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
   totalHeight += 20;
  }
  if (listAdapter.getCount() < numColumns) {
   gridView.setNumColumns(listAdapter.getCount());
  }
  ViewGroup.LayoutParams params = gridView.getLayoutParams();
  params.height = totalHeight;
  params.width = totalWidth * listAdapter.getCount();
  gridView.setLayoutParams(params);
 }

使用时相对于父布局,应该是居中的

例: RelativeLayout android:layout_centerHorizontal="true"

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# android  # gridview居中  # gridview布局  # 布局居中  # Android中使用GridView进行应用程序UI布局的教程  # Android App中的GridView网格布局使用指南  # Android应用开发中使用GridView网格布局的代码示例  # 相关内容  # 说了  # 不多  # 给大家  # 这篇文章  # 谢谢大家  # 相对于  # 应该是  # 行数  # 有疑问  # calGridViewSumWH  # numColumns  # param  # static  # void  # public  # getAdapter  # null  # return  # listAdapter 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  如何在Ubuntu系统下快速搭建WordPress个人网站?  Python函数文档自动校验_规范解析【教程】  简历没回改:利用AI润色让你的文字更专业  Laravel如何为API生成Swagger或OpenAPI文档  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  香港服务器如何优化才能显著提升网站加载速度?  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  微信小程序 配置文件详细介绍  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  打造顶配客厅影院,这份100寸电视推荐名单请查收  Android自定义控件实现温度旋转按钮效果  晋江文学城电脑版官网 晋江文学城网页版直接进入  常州企业网站制作公司,全国继续教育网怎么登录?  网站建设保证美观性,需要考虑的几点问题!  php结合redis实现高并发下的抢购、秒杀功能的实例  如何用西部建站助手快速创建专业网站?  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  如何快速查询域名建站关键信息?  如何批量查询域名的建站时间记录?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  javascript如何操作浏览器历史记录_怎样实现无刷新导航  成都网站制作公司哪家好,四川省职工服务网是做什么用?  香港服务器WordPress建站指南:SEO优化与高效部署策略  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  javascript基本数据类型及类型检测常用方法小结  如何在Windows 2008云服务器安全搭建网站?  大同网页,大同瑞慈医院官网?  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  js实现点击每个li节点,都弹出其文本值及修改