在横向模式下使用Nexus 10设备时,布局的左右两边似乎出现莫名其妙的边距,我遇到了一个问题。
我敢肯定这是一个令人尴尬的简单操作,但在搜索时找不到任何提及。

我非常确定它与我的代码无关,因为Eclipse创建的默认Hello World项目就表现出这种现象。下面的屏幕截图摘录来自一个全新的项目,而我所做的唯一更改是使TextView textSize变得更大一些,以使其更加清晰:

您可以看到布局XML文件的默认边距(如下所示)已在纵向模式下正确应用,但是在横向模式下有相当多的附加边距-屏幕截图下方的红色条表示。

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

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

最佳答案

好的,这太尴尬了!横向模式下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>

经过将近一年的潜伏于SO并找到了我所有问题的答案之后,我最终决定正确提出的第一个问题却变得如此微不足道。

10-08 15:30