5

TableLayout のパフォーマンスがひどいです。ここで同じことについて話しているいくつかの投稿を読みました...

Android 動的に作成されたテーブル - パフォーマンスが悪い

すでに複雑なレイアウト内で tablelayout を使用しています。私はすでに多くのビューを使用しています。もちろん、使用するビューが多いほど、パフォーマンスが低下します。これは明らかですが、他のウィジェットと比較してパフォーマンスが非常に悪い可能性があるのはなぜでしょうか。

私の場合、5 * 5のテキストビュー(行のプレーンテキストビューのみ)を含むテーブルレイアウトにより、 TextView を更新するだけで、システムが1.5秒以上フリーズすることがあります。テーブル全体をレンダリングすることについて話しているのではなく、テーブルレイアウト内の 1 つのテキストビューを更新するだけです。

setColumnsStretchable()を疑ったのですが、伸びないように設定しても性能は同じです。

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    final TextView target=(TextView)seekBar.getTag();
    target.setText(""+progress);
}

これは、セルを更新するために使用するコードです。ご覧のとおり、これは SeekBar リスナーの一部です。ターゲットのテキストビューをシークバーのタグとして保存するので、findView() などを実行する必要さえありません。

そのため、シークバーを動かすとジャンプが発生します: 1 秒以上かかります!! setText() を単独で実行します。テーブル内にない他のテキストビューを更新すると、予想どおり、更新はすぐに行われます。

私のテーブルが 10*10 の場合、3 秒ほどかかります!

あなたの経験では TableLayout はノーノーですか、それとも私は何か間違っているのでしょうか? 行またはセルのlayoutparamsの魔法の値でしょうか?

前もって感謝します。

4

0 に答える 0