1

このアプリには、A、B、C の 3 つのアクティビティがあります。
「B」には style=Theme.Dialog があるため、「A」と「C」の上にある画面の一部に表示できます。
「A」が「C」に置き換えられている間に「B」を一番上に表示することで、「A」と「C」の間の遷移がユーザーにシームレスに表示されるようにします。

質問:

  1. これは正しいアプローチですか (または、アクティビティ "B" の代わりに PopupWindow などを使用する必要があります)。
  2. アクティビティ「C」が起動されると、「B」が非表示になり、「B」が点滅しているように見える (onPause/onResume が再度呼び出される) 再び表示されます。これを修正する方法はありますか?

イラスト

  1. 初期状態。「A」が打ち上げられ、「B」が「A」の上に打ち上げられる
  2. 「A」は終了、「B」はまだ上
  3. "C" が起動し、"B" が点滅して前面に表示されます (理由launchMode="singleInstance")

ここに画像の説明を入力

4

1 に答える 1

0

A と B が 2 つのアクティビティである場合、B に対する「まばたき」効果を避けることはできないと思います。

おそらく、その解決策は、同じアクティビティで A と C をマージすることです。状態を管理して、新しいアクティビティが状態 A または C にあるかどうかを確認します。

例えば:

boolean stateA = ...;
if(stateA){
 setContentView(R.layout.a);
 //use code of A
 [...]
}else{
 setContentView(R.layout.b);
 //use code of B
 [...]
}

私にとっては、より簡単な解決策のようです。

于 2015-03-20T08:59:11.593 に答える