【发布时间】:2013-09-26 05:10:46
【问题描述】:
我有一个在其布局中使用以下填充的 XML:
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
@dimen/activity_vertical_margin 和 @dimen/activity_horizontal_margin 都是 14dp。
在我的 Java 类中,我使用 toast 在运行时查看实际边距是多少:
int vert = (int) getResources().getDimension(R.dimen.activity_vertical_margin);
int horz = (int) getResources().getDimension(R.dimen.activity_horizontal_margin);
Toast.makeText(getApplicationContext(), "vert: " + vert + "\n" + "horz: " + horz, Toast.LENGTH_LONG).show();
我正在 3 种不同的设备上对此进行测试:
- 三星 Galaxy S4(Android 版本 4.2.2)
- 三星 Galaxy S3(Android 版本 4.1.2)
- 摩托罗拉 XOOM(Android 版本 4.1.2)
对于三星 Galaxy,我得到的 vert 和 horz 的返回值都是 42。无论设备是垂直的还是水平的,这都是正确的。 (为什么它们不等于 14,我不确定,但只要它们保持不变,我就满足了。)
但是,对于 XOOM,当设备垂直时,vert 和 horz 的返回值都为 14。但是,当我将其转为水平时,vert 保持在 14,horz 变为 128(几乎是其垂直值的 10 倍)。
我的问题是,为什么会在运行时自动更改?代码中没有任何内容引用它并使其更改(我知道这一点是因为其他设备没有这个问题)。
通常,我不会太在意这个,但在这种情况下,它确实让我的 UI 看起来很时髦。我查了一下,但听起来其他任何人都没有在运行时更改它们的边距。
【问题讨论】:
标签: android xml user-interface runtime margins