Я пытаюсь изменить диапазон CollectionView при вращении моего iPhone. Чтобы было проще, просто покажите 2 столбца в портретной ориентации и 4 столбца в альбомной ориентации. Он работает при повороте из портретного в ландшафтный режим, но при повороте обратно в портретный режим он всегда показывает 1 столбец. Мой код любит,
VideoCollectionView = new CollectionView()
{
ItemsLayout = new GridItemsLayout(2, ItemsLayoutOrientation.Vertical),
};
...
private static double screen_width = 1280.0;
private static double screen_height = 720.0;
protected override void OnSizeAllocated(double width, double height)
{
base.OnSizeAllocated(width, height);
if ((Math.Abs(screen_width - width) > minimum_double) || (Math.Abs(screen_height - height) > minimum_double))
{
screen_width = width;
screen_height = height;
int split;
if (screen_width > screen_height)
{ // landscape mode
split = 4;
}
else
{ // portrait mode
split = 2;
}
VideoCollectionView.ItemsLayout = new GridItemsLayout(split, ItemsLayoutOrientation.Vertical);
}
}
Это ошибка? Или я должен использовать другие способы? Спасибо за помощь.