Animate list row height

How can I tell List to animate row height changes?

I have a list whose rows may grow or shrink with user actions. When that happens the List is redrawn with the new heights instantly but the contents slide to their new position. It'd be better if the row heights were animated. Since I don't know what a row's height is I can't use the usual .frame(height: self.animate ? 60 : 90)

This code demonstrates the problem.

struct ContentView: View {
    @State private var numbers: [Int] = [0,1,2,3]
    
    var body: some View {
        VStack {
            List {
                Item(numbers: $numbers)
                Item(numbers: .constant([9,8,7]))
            }
            .font(.largeTitle)
            HStack {
                Button { withAnimation { addNumber() }}
                       label: { Text("Add") }
                Spacer()
                Button { withAnimation { removeNumber() }} 
                       label: { Text("Remove") }
            }
        }
        .padding()
    }
    
    private func addNumber() {
        numbers.append(numbers.count)
    }
    
    private func removeNumber() {
        numbers = numbers.dropLast()
    }
}

struct Item: View {
    @Binding var numbers: [Int]
    var body: some View {
        VStack {
            ForEach(numbers, id:\.self) { n in
                Text("\(n)")
            }
        }
    }
}