我如何使android活动定向坚持初始值?

问题描述 投票:0回答:1

在开始之前,这不是这个较早的问题的重复:Android: How to stick to the same orientation the Activity started with,我的用例更加具体,自从提出并回答了另一个问题以来,新的选项就可用了

我的应用中有一个“查看图片”屏幕。屏幕可以在任一方向上工作,但在查看图像期间不应更改:

  • 如果我有电话portrait并打开查看屏幕,则图像应显示为portrait
  • 如果然后将手机旋转至landscape,则图像仍应显示为portrait
  • 如果我在landscape中退出并重新进入手机屏幕,则图像应显示为landscape
  • 如果退出,将手机旋转至portrait并重新进入屏幕,则图像应再次显示为portrait

换句话说,我希望屏幕同时支持纵向和横向,但只支持当我打开该图像的活动时处于活动状态的那个。我不想在查看时通过配置更改进行更新。

我已经尝试过新值nosensorlocked,但是这两个值都将其硬编码为0度,因此看不到实现上的差异。我不相信我可以在活动/片段生命周期内以编程方式检查方向,因为这种情况发生在所有东西都被拆除并重新创建之后。我需要清单的解决方案-是否存在这样的设置?还是在不保留实例的情况下避免重新创建/重绘视图的编程方式?

android screen-orientation android-orientation device-orientation screen-rotation
1个回答
0
投票
我认为您可以使用Manifest这样的代码来实现这一点

<activity android:name=".FirstActivity" android:screenOrientation="user"> <intent-filter> <action android:name="android.intent.action.Main" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SecondActivity" android:screenOrientation="locked"> <intent-filter> <action android:name="android.intent.action.View" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

来源:activity-element,第android:screenOrientation

“ locked”将方向锁定为其当前旋转,无论是什么方向。已在API级别18中添加。
© www.soinside.com 2019 - 2024. All rights reserved.