2016-05-06 14 views
0

私はScrollViewの内部にGridViewを持っています。私はGridViewに約12,000個のアイテムを作成して表示しようとしていますが(明らかに画面上に適切に表示されません)、アイテムの数は40,000個まで可能です。現在、すべてのアイテム(ラベル)の作成には約18秒が費やされていますが、ウィンドウのサイズを変更すると別の大きな遅延が生じます。Kivy ScrollView(Gridviewを使用)パフォーマンスの問題が発生する

アイテムの構成とレンダリングを高速化するにはどうすればよいですか?私は、ScrollViewでページングや遅延、オンデマンドの読み込みを行う方法を知らない。

+0

いくつかのコードはいいと思います。 1回の時計のチックでウィジェットを追加できる回数には限界があり、uiはフリーズしません(ハードウェアに依存しています)。しかし、単にforを使うとフリーズするまでフリーズします。完了しました。おそらくクロックが十分でない場合、スレッドを使用しようとします。 Btw、もちろん、ウィンドウのサイズ変更はそれを遅らせるでしょう。なぜならkivyはそれぞれの現在のウィジェットのサイズと位置を再計算し、再計算するときにウィジェットを押し続けると、再計算が完了するまで待ちます何百ものウィジェット、そして多くのもの)。 – KeyWeeUsr

+0

おそらくすべての項目を追加するのは良い考えではありません。私はRecycleViewを見ていました。これは比較的新しい自動ソリューションです。 – inclement

答えて

0

ユーザーが40000個のラベルをスクロールしているとはどう思いますか?あなたはあなたのアプリデザインを考え直すべきです。

テキスト入力を追加し、指定された文字列に基づいて、データベースからフィルタリングされたデータをフェッチすることを検討してください。

+0

1.それはソブリンのデスクトップアプリケーションであり、アプリではありません。 2. 40,000のラベルは8,000行に対応します。 3.照会するデータベースはありません。データはログ・ファイルの内容です。 4.フィルター正規表現フィールドとレコードタイプフィルターがありますが、フィルターが適用されていない場合(既定値のように)には多くの行があります。 – FluxIX

+0

@FluxIX 1)この場合は関係ありません。 2)まだまだ。 3)。 4)フィルタ文字列がない場合は、上位50個(またはその他の少数)の最新ログのみを表示します。ラベルが1秒未満で作成されたとしても、何千ものラベルを表示しないでください。たぶん*どこかの誰かが自分のプログラムでそれをやっているかもしれませんが、それは良いことを意味するものではなく、kivyで簡単に修正することができます。 – jligeza

+0

追加するだけです。あなたが表示する場合、トップ50の最新のログを言いましょう。そして、ユーザーはトップ100を見たいと思って、最後に "show 50 more"というボタンを置いてください。 – jligeza

関連する問題