Проще говоря: мне нужно отобразить список, но если выполняется определенное действие, мне нужно вместо этого отобразить второй другой список (без фильтрации, совершенно другой тип данных и ячейки). Когда условие отображения второго ScrollView активно, я вижу второй ScrollView. Но:
Я вообще не могу прокручивать, пока не вернусь к первому ScrollView.
Точно так же кнопки внутри второго ScrollView не работают
Кажется, что взаимодействие с пользователем отключено во втором режиме прокрутки. Я попытался инвертировать условие, чтобы увидеть, есть ли проблема со вторым макетом, но проблема остается: всегда представление прокрутки, идущее вторым, не работает.
Вот текущий код для представления:
Код: Выделить всё
struct SearchView: View {
@StateObject var viewModel: SearchViewModel
var body: some View {
ZStack(alignment: .top) {
ScrollView {
LazyVGrid(columns: Array(repeating: GridItem(.flexible()), count: 2), spacing: 16) {
ForEach(viewModel.categories, id: \.id) { category in
Button {
viewModel.categoryTapped(category: category)
} label: {
CategoryCellView(category: category)
}
}
}
.padding(.horizontal, 16)
}
.opacity(viewModel.items.isEmpty ? 1 : 0)
ScrollView {
LazyVStack {
ForEach(viewModel.items) { item in
Button {
viewModel.openItem(item: item)
} label: {
cell(for: item)
}
}
}
.padding(.horizontal, 16)
}
.opacity(viewModel.items.isEmpty ? 0 : 1)
}
.onAppear {
viewModel.load()
}
}
}
Если у кого-то есть идеи, буду рад! спасибо
Подробнее здесь: https://stackoverflow.com/questions/786 ... second-one
Мобильная версия