Disclosure Group pushes/widens views below and above it as well widens its own tab/bar

37 Views Asked by At

I am using two different disclosure groups in a VStack. Whenever I activate the Disclosure Group, it appears to not only widen its own tab/bar (the title part) but any views below the disclosure group also seems to be widened as well.

Before

enter image description here

After

enter image description here

Code, the two dropdown sections are placed in a normal vstack, placed in a scroll view

var scroll: some view {

ScrollView{ scrollStack } }

    var scrollStack: some View {
    VStack {
        soundAndDSPSection
        subwooferCutoffDropDown
        fullRangeCutoffDropDown
        middleTextView
        slidersView
        learnMoreAdjustmentBurron
        syncButtons
        learnMoreSyncButton
    }
}


var subwooferCutoffDropDown: some View {
    DisclosureGroup("Subwoofer Cutoff (Maximum)") {
        lowpassCrossoverSection
    }
    .padding()
    .accentColor(.trulliBlack)
}

var fullRangeCutoffDropDown: some View {
    DisclosureGroup("Full-Range Cutoff (Minimum)") {
        highpassCrossoverSection
    }.padding()
    .accentColor(.trulliBlack)
}

var lowpassCrossoverSection: some View {
    VStack {
        lowSlopeNumber
        lowSlopeSlider
    }
}

var highpassCrossoverSection: some View {
    VStack {
        highSlopeNumber
        highSlopeSlider
    }
}



var lowSlopeNumber: some View {
    HStack(alignment: .bottom) {
        Text("\(hzLevel.roundToInt()*10+50)")
            .font(.semibold44PN())
        Text("Hz")
        
    }
    .padding(.top)

}

var lowSlopeSlider: some View {
    Slider(value: $hzLevel, in: 0...07) { didChange in
        actions()
    }
    .frame(width: 360)
    .tint(Color.red)
    .padding([.trailing, .leading])
    .padding([.trailing, .leading])
    
}

var highSlopeNumber: some View {
    HStack(alignment: .bottom) {
        Text("\(highHzLevel.roundToInt()*10+80)")
            .font(.semibold44PN())
        Text("Hz")
    }
    .padding(.top)

}

var highSlopeSlider: some View {
    Slider(value: $highHzLevel, in: 0...07) { didChange in
    actions()
    }
    .frame(width: 360)
    .tint(Color.red)
    .padding([.trailing, .leading])
    .padding([.trailing, .leading])
    
}
0

There are 0 best solutions below