1

ここに取り引きがあります: ウェイト付きの LinearLayouts が含まれているため、これ以上改善できない重いレイアウトがあります (したがって、RelativeLayouts を使用できません)。アクティビティ A で、アクティビティ B を起動するリスト項目をクリックします。アクティビティ A は、アクティビティ B が完全に読み込まれるまでフリーズし、その後アクティビティ B が表示されます。したがって、これはイベントの完全なキューです。

  1. アクティビティ A: B を開く
  2. アクティビティ A: フリーズ
  3. アクティビティ B: インフレーションの終了/setContentView
  4. アクティビティ A: アプリケーション スタックに戻る
  5. アクティビティ B: 表示される

アクティビティ A がフリーズしないように、アクティビティ B をすぐに表示するにはどうすればよいですか? B で一時的なレイアウトを膨らませることを考えましたが、B が完全に表示されていることを知らせるコールバック メソッドが必要で、一時的なレイアウトを実際のレイアウトに置き換えることができます。

誰でも私を助けることができますか?ありがとうございました!

トピック外: Android でのレイアウト インフレーションは本当に苦痛です。UI 全体をブロックするべきではありませんが、ブロックしてしまいます。リストアダプターを設定する場合も同じです。

4

2 に答える 2

0

スレッドでアクティビティBのタスクを実行する必要があります。タスクの完了後にUIを更新する必要がある場合は、ハンドラーを使用して実行してください。

于 2011-08-04T09:56:54.653 に答える
-1

AsyncTaskを使用して、時間のかかる読み込みを行うことができます。

 doInBackgroundMethod to load the data
 onProgressUpdate you can bind your layout to data.

このように作業すると、アクティビティはフリーズしません

于 2011-08-04T09:59:03.967 に答える