在不调用onCreate的情况下更改布局

3

我有一个活动,其中包含两个布局文件,分别用于纵向和横向模式。我发现每次更改方向时都会调用onCreate方法。我尝试使用

android:configChanges = "orientation"

在清单文件中,但它只读取纵向布局。有没有办法在不调用onCreate的情况下将布局设置为横向模式?

当您更改方向时,onCreate会自动调用。 - Gligor
4个回答

2

这意味着我必须无论如何保存和重复使用我的活动数据,对吗? - Rameez Hussain
据我所知,使用android:configChanges =“orientation”可以防止由于方向更改而销毁/重新创建Activity,并且会调用onConfigurationChanged(...)。然而,任何其他配置更改都将导致Activity被销毁/重新创建,并且不会调用onConfigurationChanged(...) - Squonk
@RameezHussain:我在我的答案中添加了另一个链接,其中解释了如何处理配置更改。 - Squonk

0
如果您希望您的活动仅在横向模式下运行,您可以在AndroidManifest.xml文件中为该活动设置此属性:
        android:screenOrientation="landscape"

您可以将layout.xml文件放置在以下不同屏幕方向的文件夹中:

  • res\layout-land
  • res\layout-port

这正是我所做的。它似乎仍在使用我放置在layout-port文件夹中的布局文件。 - Rameez Hussain
将以下属性添加到 AndroidManifest.xml 文件中: android:screenOrientation="landscape" - ViliusK
该活动适用于两种方向。这将限制它仅在横向模式下显示。这不是我要找的。 :) - Rameez Hussain

0
你可以创建两个布局文件夹。一个用于纵向模式,一个用于横向模式。 分别为layout和layout-land。

0

这是 Android 生活中的一个事实。您需要围绕它开发您的活动,因为它可能会在任何时刻被销毁,例如屏幕方向的配置更改。 在 onPause 中保存用于构建屏幕的所有信息,并在 onCreate 中重新创建它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接