6

在横向模式下使用 Nexus 10 设备时,我的布局左侧和右侧出现看似莫名其妙的边距问题。我敢肯定这是令人尴尬的直截了当的事情,但是在四处搜索时我找不到任何提及。

我很确定它与我的代码无关,因为 Eclipse 创建的默认 Hello World 项目表现出这种现象。以下截图摘自一个全新的项目,我所做的唯一更改是为了清晰起见将 TextView 的 textSize 放大一点:

Nexus 10 横向和纵​​向的比较

您可以看到布局 XML 文件(如下所示)中的默认边距在纵向模式下正确应用,但在横向模式下应用了相当大的额外边距 - 由屏幕截图下方的红色条指示。

<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>

有没有其他人看到过这个或知道如何摆脱它们?我真的不知道从哪里开始,因为它似乎是特定于这一设备和屏幕方向的。此外,它会影响最简单的程序以及我自己的程序,因此在我找出如何修复默认情况之前,拆分我自己的代码是没有意义的。
相同的屏幕在模拟设备和我的三星 Galaxy S2(运行 Gingerbread)上正确显示。将项目构建目标从 API 级别 17 更改为 10 也不会改变不需要的效果。有什么想法吗?

4

2 回答 2

9

好的,所以这是令人尴尬的直截了当!横向模式下 Nexus 10 的边距取自“values-sw720dp-land”资源文件夹,该文件夹声明了一个更大的值:

<!--
     Customize dimensions originally defined in res/values/dimens.xml (such as
     screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.
-->
<dimen name="activity_horizontal_margin">128dp</dimen>

经过近一年的潜伏并找到我所有问题的答案后,我最终决定正确提出的第一个问题竟然像这样微不足道......

于 2013-08-02T10:51:05.703 回答
0

谢谢,danj1974!你为我节省了很多时间!我将 res/values-w820dp/dimens.xml 中的设置更改为

<dimen name="activity_horizontal_margin">0dp</dimen>

而且效果很好。

于 2014-08-14T07:30:53.547 回答