Xamarin:AbsoluteLayout中如何将ScrollView从(0,94)定位至屏幕底部
ScrollView布局超出屏幕解决方案
你设置的(0,94,1,1)参数逻辑存在问题,HeightProportional属性的数值1代表占用父容器/屏幕100%的高度,你已经给ScrollView设置了顶部偏移94,再叠加100%的高度占用,整体实际高度就变成了顶部偏移量+屏幕高度,自然底部会超出屏幕显示范围。
可直接使用的解决方案
- 方案1:动态计算高度比例
先获取当前设备的屏幕总高度(记为screenHeight),你需要的ScrollView实际可用高度为screenHeight - 94,对应的高度比例值为(screenHeight - 94)/screenHeight,最终布局参数设置为(0, 94, 1, (screenHeight - 94)/screenHeight)即可适配。 - 方案2:嵌套布局适配(推荐,适配性更强)
父布局选择垂直方向的线性布局,先在顶部添加一个高度固定为94的占位空白View,再将ScrollView放在占位View下方,设置ScrollView的HeightProportional为1即可,不需要手动计算高度,适配不同分辨率屏幕时不会出现适配错误。 - 方案3:约束布局实现
如果使用约束布局,直接给ScrollView设置三条约束即可:顶部约束等于父布局顶部 + 94,宽度约束等于父布局宽度,底部约束等于父布局底部,系统会自动计算适配高度,不需要手动设置比例参数。
注意:如果你设定的94是px单位,需要先根据设备dpi转换成适配的实际显示像素,避免不同设备上顶部留白高度不一致的问题。
内容的提问来源于stack exchange,提问作者Pulai Gábor
相关产品推荐
相关产品推荐

