2012-05-11 56 views
7

我在设计一个应用程序,我只是想知道如何在横向模式下制作不同的布局。我在res中创建了一个名为“layout-land”的文件夹,并创建了一个xml文件,但在运行模拟器时它不起作用。我试图称它为“主”,但它表示已存在,但它在“布局”文件夹中。如果我称之为不同的东西,我需要改变清单中的某些东西吗?谢谢您的帮助!Android景观布局

+0

没有你在做什么只是再次检查文件夹和XML文件的拼写再次.http://developer.android.com/guide/topics/resources/providing-resources.html#Compatibility – Akram

+0

不完全得到你的问题。但是android会自动更改方向更改的布局,直到您不在活动中重写onConfigurationChage。 –

回答

10

只是为了澄清,如果你在横向或纵向Android首先在-land目录中寻找布局文件,如果找不到,那么它会检查默认的layout目录。你的文件应该被命名为如下,将取决于在运行时对设备的当前配置的系统加载:

res/layout/main.xml 
res/layout-land/main.xml 

检查的详细信息,providing resources的文档。

+1

谢谢,正如我说的,当我右键点击layout-land文件夹并单击新的android xml文件时,我无法将其命名为“main”它表示已存在但它不在该文件夹中 –

+0

嗨rsay3, Alex实际上解决了你的问题吗?我在做TheNewBoston教程并且遇到同样的问题。我有布局和布局土地目录。 layout-land ist为空,如果我查看eclipse中的文件夹,它将正确映射到layout-land目录。我仍然有这个问题。可能是一个月食错误。我必须通过将文件从布局复制到layout-land并刷新日蚀来解决它。 – Kurt

+0

@Kurt。你真的得到了什么错误信息? –

1

你想要的文件夹结构是这样的:

res\layout\main.xml 
res\layout-land\main.xml 

每个布局应包含相同的元素,但重新排列,例如如果您在肖像风景中有一个带有android:id="@+id/button1"的按钮,则您需要在横向模式下给出相同名称的等效按钮。

1

首先,你必须通过添加到您的清单

android:configChanges="orientation" 

然后你就可以覆盖此功能,并使用的setContentView监听confguration变化

public void onConfigurationChanged(Configuration newConfig) 
+0

该功能需要检查什么? – PankajAndroid