Android中oncreate中获得控件高度或宽度的实现方法

发布时间 - 2026-01-11 03:10:57    点击率:

Android中oncreate中获得控件高度或宽度的实现方法

onCreate函数只是提供了数据初始化的机会,此时还没有正式绘制图形。在图形尚未渲染的情况下,getWidth()或getHeight()得到的值为0。如果需要自适应屏幕,需要一进入界面就得到父控件大小,然后需要在onCreate中动态设置子控件大小。

 方法1:

利用ViewTreeObserver类的addOnPreDrawListener接口。

ViewTreeObserver vto = hscrollview.getViewTreeObserver(); 
 
          vto.addOnPreDrawListener(newViewTreeObserver.OnPreDrawListener() { 
 
              @Override 
 
              publicboolean onPreDraw() { 
 
                   if(hasMeasured == false){ 
 
                        intwid = hscrollview.getWidth(); 
 
                        inthei = hscrollview.getHeight(); 
 
                        if(wid != 0 && hei != 0){ 
 
                            hasMeasured= true; 
 
                        } 
 
                   } 
 
                   returntrue; 
 
              } 
 
          }); 

方法2:

利用ViewTreeObserver类的addOnGlobalLayoutListener接口。

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android中oncreate获取控件  # Android中oncreate获取控件的高度实现实例  # Android onCreateOptionsMenu的使用方法总结  # Android编程实现两个Activity相互切换而不使用onCreate()的方法  # Android OnCreate()中获取控件高度与宽度两种方法详解  # Android使用onCreateOptionsMenu()创建菜单Menu的方法详解  # Android onCreate( )方法详细介绍  # Android 解决嵌套Fragment无法接收onCreateOptionsMenu事件的问题  # Android在OnCreate中获取控件的宽度和高度的实现代码  # 还没有  # 如有  # 希望能  # 谢谢大家  # 值为  # 自适应  # 疑问请  # 情况下  # ViewTreeObserver  # pre  # addOnPreDrawListener  # class  # brush  # java  # nbsp  # oncreate  # Android  # strong  # getHeight  # getWidth 


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


相关推荐: Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Swift中switch语句区间和元组模式匹配  使用Dockerfile构建java web环境  javascript如何操作浏览器历史记录_怎样实现无刷新导航  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  ,网页ppt怎么弄成自己的ppt?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Laravel怎么使用Intervention Image库处理图片上传和缩放  Laravel如何创建自定义Artisan命令?(代码示例)  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  EditPlus中的正则表达式 实战(1)  如何在云指建站中生成FTP站点?  Linux后台任务运行方法_nohup与&使用技巧【技巧】  Laravel如何实现API速率限制?(Rate Limiting教程)  Python面向对象测试方法_mock解析【教程】  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  简单实现Android验证码  如何制作一个表白网站视频,关于勇敢表白的小标题?  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  如何续费美橙建站之星域名及服务?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Laravel如何使用Livewire构建动态组件?(入门代码)  如何用PHP快速搭建CMS系统?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  香港服务器网站推广:SEO优化与外贸独立站搭建策略  如何选择PHP开源工具快速搭建网站?  WordPress 子目录安装中正确处理脚本路径的完整指南  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  潮流网站制作头像软件下载,适合母子的网名有哪些?  如何用AI帮你把自己的生活经历写成一个有趣的故事?  JS去除重复并统计数量的实现方法  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Linux系统命令中screen命令详解  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  JS实现鼠标移上去显示图片或微信二维码  如何获取免费开源的自助建站系统源码?  Laravel如何实现事件和监听器?(Event & Listener实战)  如何在香港服务器上快速搭建免备案网站?  node.js报错:Cannot find module 'ejs'的解决办法  Laravel如何创建自定义Facades?(详细步骤)  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  Laravel PHP版本要求一览_Laravel各版本环境要求对照  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程