Странное дополнительное пространство в ListView на iOS

Я хочу создать представление для папок, реализованное с помощью ListView. Особенность заключается в том, что ListView не должен расширяться до полноэкранного режима, а должен увеличиваться в зависимости от содержимого. Оставшееся пространство должно иметь фоновый цвет.

Чтобы реализовать это поведение, я использую сетку с двумя строками. Проблема в том, что список больше, чем должен быть. Я понятия не имею, откуда взялось это дополнительное пространство? После строки «Папка 6» не должно быть лишнего пробела.

<Grid BackgroundColor = "{StaticResource backgroundColor}">
    <Grid.RowDefinitions>
        <RowDefinition></RowDefinition>
        <RowDefinition></RowDefinition>
    </Grid.RowDefinitions>
    <ListView
        x:Name = "folderList"
        VerticalOptions = "StartAndExpand"
        ItemsSource = "{Binding DocumentsGrouped}"
        IsGroupingEnabled = "True"
        HasUnevenRows = "True"
        Footer = ""
        GroupDisplayBinding = "{Binding Key}"
        >
        <ListView.GroupHeaderTemplate>
            <DataTemplate>
                <ViewCell Height = "30">
                    <Frame 
                        BorderColor = "#D1D1D5"
                        CornerRadius = "0" HasShadow = "False"
                        BackgroundColor = "#EFEFF4"></Frame>
                </ViewCell>
            </DataTemplate>
        </ListView.GroupHeaderTemplate>
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell Height = "40" StyleId = "disclousure">
                    ...
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</Grid>

Мне нужно, чтобы высота списка основывалась на количестве элементов, а не на половине экрана.

Странное дополнительное пространство в ListView на iOS

Привет, я могу решить эту проблему только с помощью этого подхода: xamarinsharp.com/2017/05/20/…, но это не очень приятно :-(

rubiktubik 29.03.2019 10:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
334
1

Ответы 1

a strange additional space?

Это ожидаемые результаты. Поскольку вы помещаете список в Сетка, который имеет две строки.

<Grid.RowDefinitions>
    <RowDefinition></RowDefinition>
    <RowDefinition></RowDefinition>
</Grid.RowDefinitions>

И кажется, что вы забыли установить высоту строки. Таким образом, высота по умолчанию каждой строки составляет половину высоты экрана.

Когда в вашем списке 6 элементов. Высота списка меньше строки. Итак, есть странное дополнительное пространство. Если вы добавите больше элементов в список, пространство будет «отклоняться». И я предлагаю вам установить высоту строки.

Спасибо за Ваш ответ! Я не могу установить фиксированную высоту строки, потому что не знаю, сколько элементов будет в списке. Я также пытался использовать стек, но список расширяется до полноэкранного режима.

rubiktubik 20.03.2019 09:26

Есть ли у него элементы во второй строке?

Lucas Zhang - MSFT 20.03.2019 09:38

Нет, вторая строка всегда пуста и всегда должна быть оставшимся местом

rubiktubik 20.03.2019 10:28

Почему вы не знаете, сколько элементов будет в списке? Я думаю, вы можете получить число и рассчитать высоту строки.

Lucas Zhang - MSFT 21.03.2019 02:24

Другие вопросы по теме