平时没那么注意linearlayout布局布局时权重嘚问题设置了权重属性后,通常建议将width或height的属性值设置为0dp有时候设置权重后,还是习惯将width或height的属性设置为wrap_content这会有什么影响吗?做完叻“掌上平桂”项目后发现新闻栏目的多图展示,总是出现三张图无法平均分配空间的问题其中一个原因,每一张图片的尺寸不同朂初的猜想可能网络加载数据延时的问题或是ViewHolder类的问题。最后发现原因是权重设置的问题
网络加载多图请求后,在BaseAdapter适配器中填充获取的圖片 内容后出现多张图片分配不均匀的情况,但部分图片分配是均匀的这就让TeachCourse感觉更奇怪,布局中设置的权重都一样的适配时为什麼有的三张图占的空间不一样。
通常遇到一个问题,搁在心里TeachCourse觉得挺难受根据编程的感觉,可以肯定某个地方的代码是有问题的否則不会出现这种情况。昨晚第一感觉应该是BaseAdapter使用ViewHolder设置标签的问题,本来是直接写:
认为获取是对象赋值的问题导致的第二种可能网络加载图片数据的问题,测试后发现还是一样后来查看了一下布局文件,如上述布局代码
最大的可能出现在了linearlayout布局布局中ImageView标签设置width和height的問题,上述代码中每个ImageView设置的width和height都为wrap_content同时都设置权重1,似乎不起作用于是尝试将权重去掉,发现三张图的最后只显示两张,基本空間都是分配不均匀看来问题大概明确,权重设置不合理将width设置的wrap_content改为0dp,修改后的代码:
PS:水平的linearlayout布局布局设置权重,width应该设置0dp;垂矗的linearlayout布局布局设置权重,height应该设置0dp否则可能出现width或height分配不均匀的情况,最终原因权重设置不生效
布局调整前后,加载网络图片展示明显区别