title: RecycleView error when using custom class as the viewclass
body: <p>For better optimization, I decided to use the <strong>RecycleView</strong> in one part of my program to hold a set of <strong>DownloadItem</strong> instances. The problem is that the class takes two arguments: <strong>path &amp; url_type</strong> which I do not know how to pass to the <strong>data</strong> of the recylceview. As a result I get the error below:</p>
  <pre><code> TypeError: __init__() missing 1 required positional argument: 'path'
  </code></pre>
  <p>My python file:</p>
  <pre><code>from kivy.lang import Builder
  from kivymd.uix.card import MDCard
  from kivymd.app import MDApp
  
  
  class DownloadItem(MDCard):
  
      def __init__(self, path: str, url_type: str = &quot;file&quot;, **kwargs):
          self.path = path
          self.url_type = url_type
          self.paused = False
          self.fill_animation = None
          # I later on use these variables in this class
          super(DownloadItem, self).__init__(**kwargs)
  
      # the rest of the class ...
  
  class BitDownloader(MDApp):
  
      def __init__(self, **kwargs):
          global app
          super(BitDownloader, self).__init__(**kwargs)
          self.kv = Builder.load_file(&quot;design.kv&quot;)
          self.path = &quot;C:/Users/Family/Downloads/&quot;
          app = self
  
      def build(self):
          self.theme_cls.theme_style = &quot;Dark&quot;
          return self.kv
  
      def add_item(self):
          # I know that you need to pass kwargs only when appending to the data but I have no other clue what to do
          self.kv.ids.downloads_list.data.append({&quot;path&quot;: self.path + '/' if self.path[-1] != '/' else self.path,
                                              &quot;url_type&quot;: &quot;file&quot;})
  
  
  if __name__ == '__main__':
      BitDownloader().run()
  </code></pre>
  <p>My KV file:</p>
  <pre><code>#:kivy 2.0.0
  &lt;TooltipMDLabel@MDLabel+MDTooltip&gt;
  &lt;DownloadItem&gt;:
      orientation: &quot;vertical&quot;
      padding: 10
      spacing: 10
      size_hint_y: None
      height: 100
      elevation: 20
      border_radius: 5
      radius: [5]
      MDBoxLayout:
          adaptive_height: True
          spacing: 5
          MDIcon:
              icon: root.url_type
              size_hint_x: None
              width: self.texture_size[0]
          TooltipMDLabel:
              text: root.path if len(root.path) &lt;= 30 else root.path[:31] + &quot; ...&quot;
              tooltip_text: f&quot;Path: {root.path}\nType: {root.url_type}&quot;
              tooltip_bg_color: app.theme_cls.bg_darkest
              tooltip_text_color: app.theme_cls.opposite_bg_darkest
              size_hint_y: None
              height: self.texture_size[1]
      MDSeparator:
      MDBoxLayout:
          spacing: 10
          MDProgressBar:
              id: progress_bar
              min: 0
              max: 100
              value: 50
              color: app.theme_cls.primary_color
          MDIconButton:
              id: pause_resume_button
              icon: &quot;pause&quot;
              pos_hint: {&quot;center_x&quot;: .5, &quot;center_y&quot;: .5}
          MDIconButton:
              icon: &quot;close&quot;
              pos_hint: {&quot;center_x&quot;: .5, &quot;center_y&quot;: .5}
  BoxLayout:
      orientation: &quot;vertical&quot;
      spacing: 10
      RecycleView:
          id: downloads_list
          viewclass: &quot;DownloadItem&quot;
          RecycleBoxLayout:
              default_size: None, dp(56)
              default_size_hint: 1, None
              size_hint_y: None
              height: self.minimum_height
              orientation: &quot;vertical&quot;
              padding: 15
              spacing: 15
      MDRaisedButton:
          text: &quot;Add&quot;
          size_hint_x: 1
          on_release: app.add_item()
  </code></pre>