Python 3.x ScreenManager RecycleView未显示项目

Python 3.x ScreenManager RecycleView未显示项目,python-3.x,android-recyclerview,kivy,screen,kivymd,Python 3.x,Android Recyclerview,Kivy,Screen,Kivymd,以下代码运行时没有任何错误,无法理解为什么RV项目没有显示-屏幕显示为空白,但当我放置其他项目时,它们会显示。可能是一个简单的解决办法。我举了几个例子,但类似的问题仍然存在 欢迎提出任何建议。仍在学习的道路上 千伏 浏览代码时,我注意到self.data在main屏幕中。您需要将该点指向您的RecycleView,您可以通过传递self.children[0].data来实现,而不仅仅是self。此外,kv文件中的RecycleView缩进不正确。我不确定这是否只是一个SO问题,但它应该在主屏幕

以下代码运行时没有任何错误,无法理解为什么RV项目没有显示-屏幕显示为空白,但当我放置其他项目时,它们会显示。可能是一个简单的解决办法。我举了几个例子,但类似的问题仍然存在

欢迎提出任何建议。仍在学习的道路上

千伏


浏览代码时,我注意到
self.data
main屏幕中。您需要将该点指向您的
RecycleView
,您可以通过传递
self.children[0].data
来实现,而不仅仅是
self
。此外,kv文件中的
RecycleView
缩进不正确。我不确定这是否只是一个SO问题,但它应该在
主屏幕
和abrakadabra self.root.data中。*****很好,很高兴我能帮忙:)
<RecycleViewRow>:
    orientation: 'vertical'
    Label:
        text: root.text
    Button:
        text: 'Show'
        on_press: app.root.message_box(root.text)

<MainScreen>:

RecycleView:
    id: rv
    viewclass: 'RecycleViewRow'
    RecycleBoxLayout:
        default_size: None, dp(56)
        default_size_hint: 1, None
        size_hint_y: None
        height: self.minimum_height
        orientation: 'vertical'
from kivymd.app import MDApp
from kivy.app import App
from kivy.properties import StringProperty
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.recycleview import RecycleView
from kivy.uix.screenmanager import ScreenManager, Screen
from kivymd.uix.screen import MDScreen

from pathlib import Path, PurePath

# Music Path
storageLocation = Path.cwd()
if Path('Books').is_dir():
    storageLocation = Path.cwd() / 'Books'
    # Check if file is in SD card
# elif Path.is_mount():
else:
    storageLocation = Path.cwd() / 'Books'
    storageLocation.mkdir()

class RecycleViewRow(BoxLayout):
    text = StringProperty()

class Playlist(Screen):
    pass


class MainScreen(Screen):
    def __init__(self, **kwargs):
        super(MainScreen, self).__init__(**kwargs)

        songs = []
        booksdir = [f for f in storageLocation.iterdir() if f.is_dir()]

        if Path('Books').is_dir():
            for filename in storageLocation.glob('**/*.wav'):
                songs.append(filename)
        # self.data = [{'text': str(x), 'id': str(x)} for x in booksdir]

        self.data = [{'text': "Button " + str(x), 'id': str(x)} for x in range(100)]



class Main(MDApp):
    def build(self):
        sm = ScreenManager()
        sm.add_widget(MainScreen(name='MainScreen'))
      # sm.add_widget(Playlist(name='Playlist'))
        return sm


Main().run()