我已经为此苦苦挣扎了2天,没有任何结果。在工作室里是一回事——在模拟器里又是另一回事!
假设我有一个 800x600 140 dpi (@1x) 屏幕,它只有横向。
我正在做布局,工作室里的一切看起来都很完美。例如,我有一个 800dp 的屏幕,如果我将左右缩进 250dp,则内容将显示在 320dp 宽的列的中心。290+320+290 = 800。
当我在标准模拟器或 Genymotion 中运行该应用程序时,中心栏变得更细 - 20dp,也就是说,就像在纵向模式下一样!我完全不明白。
我已经尝试过的方法没有帮助:
- 为地平线和景观创建替代布局。
- 创建具有明确定义的宽度的替代布局。
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDCAPE)- 它只是把图片放在一边,而我看到的是同样的窄条。
可以在清单文件中设置水平方向。
调整元素大小时最好不要使用特定值。您永远无法装下整个设备动物园。
使用 weight 是正确的
android:layout_weight。为此,分配每个元素android:layout_width = "0dp"和android:layout_weight="1",其中权重是容器相对于父元素应占的百分比。