【发布时间】:2020-03-02 09:25:08
【问题描述】:
我需要根据平板电脑(两个方向)更改手机(仅纵向)的方向,请让我知道在 Android 的 MVVM Cross 中执行此操作的方法
[Activity(ScreenOrientation = ScreenOrientation.Portrait, Theme = "@style/AppTheme")]
【问题讨论】:
标签: xamarin xamarin.android mvvmcross
我需要根据平板电脑(两个方向)更改手机(仅纵向)的方向,请让我知道在 Android 的 MVVM Cross 中执行此操作的方法
[Activity(ScreenOrientation = ScreenOrientation.Portrait, Theme = "@style/AppTheme")]
【问题讨论】:
标签: xamarin xamarin.android mvvmcross
将此 bool 资源放入 res/values 为 devices_config.xml 或其他任何内容(文件名在这里无关紧要):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="portrait_only">true</bool>
</resources>
把这个放在res/values-sw600dp和res/values-xlarge:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="portrait_only">false</bool>
</resources>
然后,在您的活动的OnCreate 方法中,您可以这样做:
if (Resources.GetBoolean(Resource.Boolean.portrait_only))
{
RequestedOrientation = ScreenOrientation.Portrait;
}
在最小宽度方向上超过 600 dp 的设备,或在 Android 3.2 之前的设备(基本上是平板电脑)上的 x-large 将表现得像正常一样,基于传感器和用户锁定的旋转等。其他一切(手机,几乎)将只是肖像。
以防万一,您可能会在更改活动时看到一些自动旋转,所以如果是这种情况,您可以查看this answer to fix it
嗨
【讨论】: