Итак, я новичок в NativeScript. Я сделал 2-3 учебника, но я возглавляю проект по написанию кроссплатформенного мобильного приложения, и я столкнулся со странным сценарием и не могу найти никакой реальной углубленной информации, детализирующей различия и как процесс макета работает.
Для простоты я сокращу большинство примеров кода. Моя проблема в том, что я ищу простой способ использования RadSideDrawer
. Я хотел бы сделать tkMainContent
a ScrollView
, чтобы я мог использовать Angular router и page-router-outlet
компонент для рендеринга всего моего контента между моими ActionBar
в верхней части представления и BottomNavigation
внутри tkMainContent
. Я разметил это так ...
<GridLayout rows="auto,*,auto">
<GridLayout row="0">
<!-- Custom ActionBar stuff -->
</GridLayout>
<StackLayout row="1">
<ScrollView>
<page-router-outlet></page-router-outlet>
</ScrollView>
</StackLayout>
<GridLayout row="2">
<!-- Bottom Navigation Stuff -->
</GridLayout>
Это решение работает ОТЛИЧНО, как я и ожидал в Android. Однако, когда я компилирую и запускаю в эмуляторе iOS, содержимое моего ScrollView становится в два раза больше ширины представления и переполняется справа от представления, и я не могу прокручивать или видеть переполненное содержимое. Также не работает вертикальная прокрутка.
Ранее у меня был ScrollView внутри моих дочерних компонентов, который, казалось, хорошо работал в iOS, но я не мог прокрутить вообще в Android. Это привело меня к осознанию того, что это чувствовалось как глупый способ разработки приложения, так как это портретное приложение типа производительности, которое будет всегда сохранять структуру верхнего уровня, и каждый компонент внутри страницы-маршрутизатора-розетки будет внутри ScrollView. С моей стороны это может быть плохим дизайном из-за непонимания того, как NativeScript вычисляет ширину / высоту, но после прочтения документации по Процессу компоновки я чувствую себя менее ясно, как это работает, чем раньше.
Пожалуйста, кто-нибудь объяснит мне, что я здесь не так делаю?