我正在设计一个应用程序,我只是想知道在横向模式下如何制作不同的布局。我在res中创建了一个名为“layout-land”的文件夹并创建了一个xml文件,但是当我运行模拟器时它不起作用。我试着把它称为“主要”,但它说它已经存在,但它在“布局”文件夹中。如果我称之为不同的东西我需要更改清单中的某些内容吗?谢谢您的帮助!
答案 0 :(得分:10)
只是为了澄清,如果您在横向或纵向中,Android首先在-land
目录中查找布局文件,如果找不到,则会检查默认的layout
目录。您的文件应按以下方式命名,并且系统将根据设备的当前配置在运行时加载:
res/layout/main.xml
res/layout-land/main.xml
查看providing resources上的文档以获取更多信息。
答案 1 :(得分:1)
你想要一个像这样的文件夹结构:
res\layout\main.xml
res\layout-land\main.xml
这些布局中的每一个都应包含相同的元素,但需要重新排列,例如如果您在纵向横向中有一个带有android:id="@+id/button1"
的按钮,则需要在横向模式下为同名按钮提供相同的名称。
答案 2 :(得分:1)
首先,您必须通过添加到清单来监听配置更改
android:configChanges="orientation"
然后你可以覆盖这个函数并使用setContentView
public void onConfigurationChanged(Configuration newConfig)