1

私のアプリケーションでは、多くの要素を含む大きなフォームを生成する必要があります (要素は通常、ラベル + 属性 (edditext、スピナー、チェックボックスなど) です)。

フォームに複数の要素 (>20) が含まれている場合、アプリケーションの動作が遅くなり、キーボードを開くのに約 1 ~ 2 秒かかるか、スクロールが遅くなります。

私が試したこと

  1. 現時点では、各要素は xml (TextView と別のコンポーネントを含む LinearLayout) から拡張され、フォーム レイアウトに追加されます。要素を「再利用」(実質的に再追加) しようとしましたが、フォーム レイアウトに既に追加されているため、View には既に親が存在するという例外が発生しました。

  2. ビューが再利用されるように、ListView にすべての要素を追加しようとしました。それは機能していますが、あまり良くありません: この場合の問題は、私が EditText を持っている場合、ユーザーがテキストを入力してリストの一番下までスクロールすると、EditText からテキストを保存する方法が見つからなかったため、要素が ListView に再び表示されると、EditText に追加されます (ユーザーが要素にスクロールして戻ります)。

質問

多くの UI コンポーネントを同時に使用して、優れたアプリのパフォーマンスを維持する方法を知っていますか? ユーザーがスクロールを開始する直前に EditText からテキストを取得することは可能だと思いますか?

ありがとうございました。

4

1 に答える 1