首页 文章

Xamarin Android,Xamarin表示方向改变

提问于
浏览
1

使用Xamarin Forms UI框架的Xamarin Android应用程序 . 我检测到屏幕方向,并希望仅允许特定页面的纵向和横向,但仅允许所有其他页面的纵向 .

我试图调用RequestOrientation,但强制方向保持不变,并且不会再次触发我的方向更改通知 .

1 回答

  • 2

    在App.Xaml.cs中有一个静态属性

    public static bool IsPortraitOnly { get; set; }
    

    在所有页面中将其设置为 false ,并在您希望它仅为纵向的页面中将其设置为 true .

    在Android项目的 MainActivity 中,重写方法 OnConfigurationChanged

    public override void OnConfigurationChanged(Configuration newConfig)
        {
            //using to prevent the OnCreate from firing when rotating or screen size is changing
            if (App.IsPortraitOnly)
            {
                RequestedOrientation = ScreenOrientation.Portrait;
                newConfig.Orientation = Orientation.Portrait;
            }
            base.OnConfigurationChanged(newConfig);
        }
    

    以下是android中可用的方向值:

    public enum Orientation
    {
        Landscape = 2,
        Portrait = 1,
        Square = 3,
        Undefined = 0
    }
    

相关问题