Каковы требования к бесплатному расширяемому списку в SwiftUI?

Где-то в моем коде есть довольно стандартный список с разделами:

var body: some View {
    List {
        ForEach(userData.groupedBookings) { group in
            Section(header: Text(group.key)) {
                ForEach(group.items) { booking in
                    LessonRow(booking: booking)
                }
            }
        }
    }
}

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

Что необходимо для автоматического получения этого?


person lorenzo    schedule 02.12.2020    source источник


Ответы (1)


Он активируется стилем списка боковой панели (который в некоторых условиях считается по умолчанию), который вы можете использовать явно

List {
    ForEach(userData.groupedBookings) { group in
        Section(header: Text(group.key)) {
            ForEach(group.items) { booking in
                LessonRow(booking: booking)
            }
        }
    }
}
.listStyle(SidebarListStyle())

в качестве альтернативы вы можете явно использовать DisclosureGroup, чтобы иметь поведение раскрытия для разделов, как в https://stackoverflow.com/a/63228810/12299030 < / а>

person Asperi    schedule 02.12.2020
comment
Спасибо. Это близко, но стиль совсем не тот. Я получаю большой текст раздела + чистый фон списка, тогда как мой код получает текст небольшого раздела + белый заголовок. Я попробовал DisclosureGroup, но также получил другой стиль, так как я ищу единообразия. - person lorenzo; 02.12.2020
comment
Это произошло из-за .navigationViewStyle(StackNavigationViewStyle()) - person lorenzo; 02.12.2020