Всякий раз, когда я использую List
, даже если в нем всего лишь небольшое количество предметов, после него остается огромное пространство. Как убрать пустое место? Вот пример кода:
struct ContentView: View {
var body: some View {
VStack {
List {
Section("Test"){
Text("Hello")
Text("Hello again")
}
}
.listStyle(.plain)
Text("Hello once more")
Spacer()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Я пытаюсь сделать так, чтобы Text
после списка находился прямо под последним элементом списка, а не внизу экрана. Я попробовал поставить проставку после Text
, чтобы приподнять ее, но это происходит лишь незначительно. Я пробовал использовать отрицательные отступы для List
и Section
, но это тоже не сработало.
Я нашел ответы на другой вопрос, например вообще не используйте список; Мне нравится, как он форматирует элементы, но я полагаю, что мог бы попробовать и это, если нет других решений.
Высота списка в SwiftUI не зависит от элементов, которые он содержит по умолчанию. Он просто занимает столько места по вертикали, сколько может, или вы можете установить для него статическую высоту с помощью рамки.
Я думаю, что ваш выбор:
А) Добавьте завершающее текстовое представление к элементам списка, чтобы оно отображалось как последний элемент списка внутри списка. однако это означает, что он не будет отображаться на экране, если количество элементов велико.
Б) Поместите свой список в vstack вместе с конечным текстовым представлением и вручную установите высоту для этого vstack. а также установите цвет фона и/или отступы для этого стека, чтобы он выглядел как единое целое.
Извините, это был плохой совет.
Ха-ха, ок, спасибо, без проблем; Думаю, в конечном итоге я выберу ваш первый вариант, спасибо!
Итак, ScrollView с LazyVStack, похоже, работает как список, и после него все еще остается большое пространство. Есть ли у вас способ его уменьшить?