Я работаю над мобильным приложением в Xamarin.Forms с панелью «новые сообщения» внизу экрана, например:
----------------------
| |
| |
| |
| |
| |
| |
| |
|--------------------|
| 4 New Messages ^ |
----------------------
Когда пользователь нажимает на панель внизу («4 новых сообщения»), я хочу, чтобы эта панель скользила до самого верха экрана вместе со списком заголовков сообщений под ней (которые изначально скрыты вне поля зрения). ), чтобы вся область сообщений (заголовок «4 новых сообщения» плюс список заголовков сообщений под ним) занимала весь экран, например:
----------------------
| 4 New Messages X |
|--------------------|
| - Tomorrow Night |
| - New product in...|
| - Outing cancelled |
| - Please call me |
| |
| |
| |
----------------------
Я могу сделать всю область сообщений абсолютным макетом, который занимает весь экран (parentElement.Children.Add(messagesArea, new Rectangle(0, 0, 1, 1), AbsoluteLayoutFlags.All);
), и сделать его изначально в основном скрытым за пределами экрана (за исключением панели «4 новых сообщения») с помощью TranslateY; а затем я могу использовать TranslateTo(0, 0), чтобы заставить его вернуться на полную высоту экрана.
НО это предполагает, что я знаю высоту устройства. Каков наилучший способ сделать это независимым от устройства способом? И должен ли я использовать сетку для начала?