加载横向布局文件,同时强制纵向模式。 (机器人)

时间:2017-08-16 08:54:53

标签: android android-layout

我正在开发一款应用程序,其中手机强制使用纵向模式,而平板电脑支持纵向模式以及横向模式。布局中的某些页面在layout-land文件夹中具有相应的横向版本。

问题

在手机上使用应用程序时(仅限肖像)并且在手机上自动旋转时,当应用程序显示为纵向模式时,将加载横向布局文件。

何时发生

要重新创建此行为,我会打开一个活动并旋转设备。然后,当我导航到另一个活动,或关闭并打开应用程序时,将加载横向布局。

强制纵向模式的方法

要在手机上强制使用肖像模式,请拨打

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

在我的BaseActivity onCreate方法中。

其他详情

targetSdkVersion:26 使用支持库26.0.0

感谢您的帮助!

编辑1:

不幸的是,使用(组合)清单文件中的以下设置会产生相同的行为。

  • android:screenOrientation="sensorPortrait"
  • android:screenOrientation="portrait"
  • android:configChanges="orientation"

编辑2:

我现在已经在多种设备(仿真器,One plus,摩托罗拉,三星等等)上进行了测试,这种奇怪的情况只发生在三星A5(api 23)上。

4 个答案:

答案 0 :(得分:0)

其他活动是否也有该代码?
我的意思是,其他活动并没有扩展BaseActivity?

我希望在每个活动代码中设置AndroidManifest.xml文件,例如>> android:screenOrientation="portrait"

答案 1 :(得分:0)

在项目清单文件的活动中添加此行android:screenOrientation="portrait"。希望它运作良好。

答案 2 :(得分:0)

试试这个

<activity
            android:name=".Activity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/title_activity_test_edit"
            android:screenOrientation="sensorPortrait"
            android:theme="@style/Theme.DesignDemo"
            android:windowSoftInputMode="stateAlwaysHidden" />

纵向方向,但可以是基于设备传感器的正常或反向纵向。

请参阅此链接以获取更多详细信息:

https://developer.android.com/guide/topics/manifest/activity-element.html

答案 3 :(得分:0)

如你所说,

  

手机已强制使用纵向模式,而平板电脑则支持纵向模式   以及横向模式

manifest中设置屏幕方向不起作用。 使用layout-land-sw600dplayout-land-sw720dp文件夹进行平板电脑的横向视图。另请查看此SO thread