title: ScrollView not scrolling GridLayout
body: <p>I have a <strong>GridLayout</strong> which takes some <strong>Card</strong> widgets that are basically <strong>RoundedRectangles</strong> and are supposed to be filled with specific information, the problem is that the GridLayout can take many cards and I want the user to scroll the widget. Intuitively, I defined it inside a <strong>ScrollView</strong> to scroll the gridlayout, however, the scrollview does not work. I suspect that the problem is that the gridlayout's height is not actually changing and not adapting to its children but how can I achieve this?
  My Python code:</p>
  <pre><code>from kivy.app import App
  from kivy.uix.widget import Widget
  from kivy.lang import Builder
  
  
  Builder.load_file(&quot;design.kv&quot;)
  
  
  class MyLayout(Widget):
      pass
  
  
  class MainApp(App):
      def build(self):
          return MyLayout()
  
  
  if __name__ == &quot;__main__&quot;:
      MainApp().run()
  </code></pre>
  <p>My KV code:</p>
  <pre><code>#:kivy 2.0.0
  &lt;Card@Widget&gt;:
      size_hint_y: None
      height: (self.parent.height - self.parent.padding[1] * 3) / 2
      canvas:
          Color:
              rgba: 1, 1, 1, 1
          RoundedRectangle:
              size: self.size
              pos: self.pos
              radius: [5]
  &lt;MyLayout&gt;:
      ScrollView:
          size: root.size
          do_scroll_x: False
          do_scroll_y: True
  
          GridLayout:
              id: song_menu
              cols: 2
              size_hint_y: None
              height: self.parent.height
              padding: 10
              spacing: 10
              canvas.before:
                  Color:
                      rgba: 1, 0, 0, 1
                  Rectangle:
                      size: self.size
                      pos: self.pos
  
              Card:
              Card:
              Card:
              Card:
              Card:
              Card:
  </code></pre>
  <p><strong>EDIT:</strong> I forgot to mention that I have already tried <code>height: self.minimum_height</code>, however, an absurd thing happens. The gridlayout has a weird behavior and does not show up. Basically I get this in the terminal:</p>
  <pre><code>[CRITICAL] [Clock       ] Warning, too much iteration done before the next frame. Check your code, or increase the Clock.max_iteration attribute
  </code></pre>