位置: 编程技术 - 正文

LinearLayout设置 weight 无法绘制的问题(linearlayout addview)

编辑:rootadmin

推荐整理分享LinearLayout设置 weight 无法绘制的问题(linearlayout addview),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linearlayout怎么用,linearlayout怎么居中,linearlayout底部设置,linearlayout设置背景图片,linearlayout布局怎么设置,linearlayout底部设置,linearlayout布局怎么设置,linearlayout设置边框,内容如对您有帮助,希望把文章链接给更多的朋友!

项目地址:ChildLayout

一. 问题起因:

新项目中首页有这么一个需求:看布局:

主要就是“大牌专场”这个栏目的布局问题,呈现一个,左——右上——右下 的形式,因为不能像 iOS 那样直接根据 UED 给的标注来写死布局尺寸,Android 混乱的分辨率决定了这个布局需要采用 android:layout_height="wrap_content" 的形式来决定它的高。

二. 解决方法1:使用 LinearLayout——失败

要画这个布局很简单的,比例都是确定的,那就能直接上 LinearLayout 嘛,为水平:android:orientation="horizontal" 。 左边使用 ImageView 设置 weight="1" , 右边使用 LinearLayout 设置 weight="1" 以及垂直:android:orientation="vertical" ,里面包裹两个 ImageView 同时也设置它的 weight="1" 就行了,实际代码如下:

根据上面的代码,得到的布局就是 图1 中的 LinearLayout布局 在 Android Studio 中的 Design 显示效果了。但是我们的需求不是直接从 res 中拿取图片文件,而是从服务器中获取到图片,然后显示到界面上的,然后从服务器中获取图片这个需求是异步进行的,界面肯定先画好的,然后再绘到 UI 上的,然后它会出现 图2 的中 1 的这种情况,即:右边的两张图片无法显示出来了。实际原因就是,由于我们设置的 weight 属性,系统无法计算出它是应该根据什么条件来画,因为右边两张的图片的高无法再进行计算了。(抱歉,这里我解释不了非常清楚)

三. 解决方法2:使用 GridLayout——成功

为了这个问题,我花了一个下午来解决,在各种重写 LinearLayout 来计算高度再去绘制都无效的情况下,我换了一个角度:使用 GridLayout 来画,它是 Android4.0开始用的,刚好,我们这个新项目决定不再兼容 Android4.0以下的系统了,这样我们就可以使用更多酷炫的效果和 API 了,GridLayout 有一个很重要的说明:

GridLayout 的布局如下:

LinearLayout设置 weight 无法绘制的问题(linearlayout addview)

但是!!看 图1 中的 GridLayout布局 项,很明显,右边的两张图片被挤出了画面,因为该布局是根据控件的实际大小来绘制的,而不是说你设置了 android:layout_width="match_parent" 就会根据屏幕尺寸来的。so…万能的 stackoverflow 给我们提供了解决方案:链接在此 根据第二个答案,我得到了一个解决方案,在 java 代码中加入如下方法:

这个方法在加载图片方法之后调用即可,不需要等到图片回调成功了再调的,实际效果就是 图2 中的 2 了

四. 解决方法3:使用 RelativeLayout——成功

我们老大,在看到我这么艰辛的折腾一个这么 easy 的问题之后,深深的鄙视了我一番之后,回到了他自己的座位上,然后5分钟后丢给了我下面这段代码:

然后。见证奇迹的时刻到了,就是 图3 中的 3 了…item 的高度会根据左边图片的大小来实际变化的。。啊。。我已经深深的捂脸跑走了。。。

代码很简单,使用 RelativeLayout来布局,两个关键点,左图使用 LinearLayout 设置 android:weightSum="2" 这样,里面的 ImageView 就只占屏幕的左半部分了,中间使用了一个像素点的 View,它有一个属性 android:layout_centerHorizontal="true",这样右边的 LinearLayout 就有了一个布局的点了,然后右边再去设置 weight="1" 就 OK 了,很 easy 有木有,嗯…没想到呢…

我是图1: 注:该图是 Android Studio 在 Design 中显示的布局预览,而不是实际的应用图片,里面的显示都是 res/drawble 下的测试图片

我是图2:

我是图3:

版权声明:本文为博主原创文章,未经博主允许不得转载。

要看的书 《第一行代码》android基本知识《HeadFirstjava》java基本知识《TCP/IP协议》网络《算法》数据结构,算法,排序算法《HeadFirst设计模式》软件测试,android开

android:ellipsize的使用 整理自:

Android 常用RGB值以及中英文名称 Android常用RGB以及中英文名称颜色RGB英文名中文名#FFB6C1LightPink浅粉红#FFC0CBPink粉红#DCCCrimson深红/猩红#FFF0F5LavenderBlush淡紫红#DBPaleVioletRed弱紫罗兰红#FF

标签: linearlayout addview

本文链接地址:https://www.jiuchutong.com/biancheng/379602.html 转载请保留说明!

上一篇:Android OpenGL ES(九)----构建几何物体

下一篇:要看的书(创业要看的书)

  • 预提所得税的计税基础
  • 所得税汇算清缴账务处理
  • 出库成本是什么意思
  • 增值税零申报怎么报税
  • 个税系统设置在哪里
  • 退回资本金要交税吗
  • 如何做好服务 服务行业
  • 发票找不到了怎么报销
  • 培训咨询企业的发展前景
  • 营业税金及附加包括增值税吗
  • 分支机构是否享受小微企业企业所得税优惠?
  • 个体工商户转让流程
  • 财政补贴金额
  • 独立核算分公司注销需要清算吗
  • 办公室租赁费计入什么科目
  • 无形资产根据什么填列资产负债表
  • 营业利润为负数说明什么
  • 电信宽带费发票专票
  • 企业所得税预缴可以不交吗
  • 支付宝对公账户还款清零要多久
  • 生产要素和资源的区别和联系
  • 财务费用在汇算清缴时填哪里科目
  • 企业收到现金支票
  • 物流公司进项票多了,可以帮人开票吗
  • 接受应税劳务的会计分录怎么写
  • 企业所得税以前年度所得调整
  • 股权激励取消怎么处理?
  • 专用发票抵扣和免税区别
  • cpu游戏性能天梯图2023
  • 即征即退的增值税需要缴纳企业所得税吗
  • 调整上年度多计提的附加税
  • 如何更改文件的创建时间
  • 合伙企业股东个税税率表
  • win11右键菜单怎么恢复
  • 票据承兑与票据贴现的区别
  • 建筑劳务费发票有进项抵扣吗
  • 机器学习中的数据预处理方法与步骤
  • 【原创】基于JavaWeb的医院预约挂号系统(医院挂号管理系统毕业设计)
  • 事业单位新会计制度固定资产
  • 商品咨询服务包含什么
  • 包装物押金属于应税货物吗
  • 成本核算需要哪些数据
  • 支付给租户的装修押金
  • 劳务公司属于什么
  • 资产负债表应付职工薪酬是负数是什么原因
  • SQL Server通过重建方式还原master数据库
  • sql server索引怎么用
  • sqlserver表与表之间怎么关联
  • 个税手续费发给财务人员 文件
  • 出口免抵增值税税率
  • 社保缴费基数和医保缴费基数一样吗
  • 幼儿园会计做账流程
  • 出售固定资产计入营业外收入
  • 预付款在会计里属于什么
  • 建筑企业如何按季度申报
  • 其他应收款内部往来
  • 银行利息 税
  • 融资租赁固定资产利息的账务处理实例
  • 预收账款最后怎么处理
  • 临时账户名称是什么意思
  • 债权资产包括哪些科目内容
  • 销售收入包含哪些费用
  • 资产处置收益和资产减值损失区别
  • 关于爱在线观看电影完整版
  • 如何把数据生成表格
  • Windows10 64位安装MySQL5.6.35的图文教程
  • 微软宣布Q3推出MRTKV3工具包
  • ubuntu下载net-tools
  • 安装怎么弄
  • w10自启
  • win10周年版
  • linux怎么查看挂载点
  • js的正则表达式
  • 使用jquery操作dom
  • 让动画不再僵硬的软件
  • python os模块
  • unity点击3d物体
  • jquery设置隐藏属性
  • 北京重点税源直报平台登录
  • 江苏省职工医保门诊报销比例
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设