2012-04-21 6 views
2

複雑なレイアウトを初期化するアクティビティを開始します。これは、画像、テキストビュー、EditTexts、Checboxes、Spinners、ActionListenersがたくさんあるテーブルです。各項目の位置は、開始される呼び出し先によって異なります。情報はインテントに保存されます。レイアウトの計算時間が長すぎます

これは、すべてのアイテムが常に異なる位置にあるため、レイアウトはXMLで構築できないことを意味します。

問題:この計算には多くの時間がかかります。アクティビティを開始する前に、最大400秒( ミリ秒)を要します。これは非常に悪いです。

どうすればこの問題を回避できますか?私が知る限り、レイアウトを事前に計算することはできません。ビューを複製することはできません。他のアクティビティでそのビューを作成してここに割り当てると、クラッシュすることもあります。

+0

400msというのは約1秒だと思います。 –

+0

xmlレイアウトの読み込み速度が速く、Javaコードビューが400msであり、それほど長い時間ではありません。 –

+0

あなたはレイアウトの構造に関していくつかの詳細な情報を得てより良い答えを得るでしょう。 – QED

答えて

1

レイアウトを分割して作成し、ユーザーの全体構造にアニメーションします。完了するのに> 400ミリ秒かかるかもしれませんが、あなたの美しいレイアウトを見ている経験のためにユーザーはガガです。これよりも多くのアドバイスは、あなたからのレイアウトの詳細なしで与えることは困難です。

0

また、400ミリ秒は多くの時間ではないと思います。

あなたが試みることができるもう1つのことは、XMLファイル内のレイアウトを作成し、アクティビティですべての要素の位置を変更する関数を作成できることです。配置を変更するには、最初にビューのレイアウトパラメータを取得し、次に新しい位置を設定してから、新しい位置に応じてビューのレイアウトを再設定することができます。

+0

クリックしてレポポンを期待すると、実際には400 mxです。レイアウトを再編成することは、実際に私が今やっていることです。これは、大変時間がかかることです。 – softwaresupply

+0

私は同様の問題を経験していました。私はそれがListViewとして動作するようにレイアウトを再設計し終わった...私はそれがあなたのケースかもしれないかわからない。 – Caumons

+0

私はあなたがビューをクローンするならば、あなたもあなたのすべてのビューの位置を変更する必要があると思います。だから私はあなたがすべてのビューの位置を変えることができることを上記で提案したものと同じになります。 –

関連する問題