Поворот экрана Xamarin (OnSizeAllocated) - PullRequest
0 голосов
/ 22 мая 2018

Я использую событие OnSizeAllocated, чтобы проверить width или height страницы при повороте экрана.

protected override void OnSizeAllocated(double width, double height)
{
    base.OnSizeAllocated(width, height);                
    System.Diagnostics.Debug.WriteLine("width " + width);         
}

И каждый вывод выглядит так:

width 375
width 375
width 812
width 812

Как я могу ограничить вывод последней строкой?

width 812

1 Ответ

0 голосов
/ 22 мая 2018

Я думаю, что вы заботитесь об обновлении только тогда, когда размер действительно меняет значение, в данном случае между вторым и третьим выполнением.Затем вы можете сохранить размер в поле и сравнить его при выполнении OnSizeAllocated:

private double _width;
private double _height;

public MainPage
{
   _width = this.Width;
   _height = this.Height;
}

protected override void OnSizeAllocated( double width, double height )
{
   if ( _width != width || _height != height )
   {
       _width = width;
       _height = height;
       if ( width > height ) ScreenRotatedToLandscape( width, height );    
       //if ( height < width ) ScreenRotatedToPortrait( width, height);
   }
}

private void ScreenRotatedToLandscape( double newWidth, double newHeight )
{
    //your logic goes here
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...