私は主に遷移でアクティビティーを開始するユースケースを持っていますが、これはナビゲーション・ドロワーから開くときには当てはまりません。私は、移行が行われたときに、私はいくつかのUIの更新をトリガするTransition.TransitionListener
を持ってスムーズな移行を維持するためにアクティビティが遷移なしで開始されているかどうかをどのように知ることができますか?
。
だから私はこのようなものがあります:
public class SomeActivity extends Activity {
public void onCreate(Bundle savedInstanceState){
// ...
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
Transition sharedElementEnterTransition = getWindow().getSharedElementEnterTransition();
sharedElementEnterTransition.addListener(new Transition.TransitionListener() {
// ...
@Override
public void onTransitionEnd(Transition transition) {
doSomeUiUpdating();
}
});
} else { // Pre-Lollipop
doSomeUiUpdating();
}
}
}
をアニメーションでの活動を開始するとき、これはうまく動作しますが、私はdoSomeUiUpdating()
を呼び出すことができるように活動を移行せずに起動した場合は、どのように私が知っていることができますか?
私はActivity
、Window
、Transition
または私が見落としているどこかに簡単な方法がなければならないと確信しています。アニメーションが表示されているかどうかを示すバンドルを設定するために、呼び出すアクティビティをリレーする必要はありません。
あなたが持っているように、私は、その同じ論理をとるであろう(IF(android.os.Build.VERSION.SDK_INT> = android.os.Build.VERSION_CODES.LOLLIPOP){doSomeUiUpdating(); ...)コードの前に、あなたは – Tasos
と遷移はAPI 19(キットカット)で追加された活動を開始する必要がありますので、あなたはそれではないLOLLIPOP前にチェックする必要がある - https://www.youtube.com/watch?v=K3yMV5am-Xo – Tasos
最初の行で言おうとすると、アクティビティ(Lollipop +であっても)は移行で最も頻繁に開始されますが、ユーザーがナビゲーション・ドロワーからアクティビティを開始するときはそうではありません。 –