python3、Kivyを用いてアプリを作成しています。
RecycleViewを用いてファイルのリストを表示しようと考えているのですが、ファイルの数が多い点、viewclassにサムネイルとして画像を持たせている点が原因で非常に重いアプリになってしまっています。
この点を解決するために、RecycleViewをページで分割して表示できれば非常に嬉しいのですが可能でしょうか?
単純に考えてRecycleViewのdataとは別に辞書型リストを作成しておいて表示分だけその都度dataに入れることでも達成できるかとは思いますが、ファイルのソート機能なども考えており、できればdataからダイレクトに表示範囲を指定できるようにしたいです。
RecycleViewの簡単なテストコードを以下に示します。
py
1from kivy.app import App 2from kivy.uix.boxlayout import BoxLayout 3from kivy.properties import ObjectProperty 4 5class TestRun(App): 6 def __init__(self, **kwargs): 7 super(TestRun,self).__init__(**kwargs) 8 9class TestRV(BoxLayout): 10 rv=ObjectProperty() 11 def on_kv_post(self, base_widget): 12 for i in range(20): 13 self.rv.data.append({"name":str(i)}) 14class RVLabel(BoxLayout): 15 name=ObjectProperty() 16 17TestRun().run()
kv
1TestRV 2<TestRV> 3 rv:rv 4 BoxLayout: 5 orientation: "vertical" 6 RecycleView: 7 id:rv 8 viewclass:"RVLabel" 9 RecycleBoxLayout: 10 default_size: None, dp(56) 11 default_size_hint: 1, None 12 size_hint_y: None 13 height: self.minimum_height 14 orientation: 'vertical' 15 16<RVLabel> 17 name:"" 18 Label: 19 text: root.name
例えば以上のコードにおいて09を表示するページと1019を表示するページと分割し、Buttonなどからページ移動ができるような方法があればご教授いただきたいです。
またページ分割に限らず、大量のRecycleViewの表示を軽くできるようなエレガントな方法があればお教えいただけると嬉しいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/24 01:33