はじめに: すべてのビューの不透明度をフェードアウトするフェードアウト/フェードインを作成しました。切り替えアクティビティ間でこれをアニメーション化したいと思います。すべてのアクティビティのすべての onStop/onResume にフェードイン/フェードアウトを追加する必要があります。
質問:カスタムのオーバーライドされた onStop 関数を作成し、それをすべてのアクティビティで使用することは可能ですか?
このような基本アクティビティを作成します
public abstract class BaseActivity extends Activity {
..................
..................
@Override
public void onStop() {
super.onStop();
// Do your stuff
}
....................
...................
}
現在、すべてのアクティビティで、基本アクティビティを次のように拡張しています
public class Activity1 extends BaseActivity
はい、間違いなく onStop() 関数をオーバーライドできます。onStop オーバーライドでアクティビティを StopperActivity にする
@Override
public void onStop() {
super.onStop();
}
他のアクティビティでは、アクティビティの代わりにこのカスタム アクティビティを拡張するだけです
これは、質問への回答ではなく提案です。
あなたの説明に基づいて、アクティビティ間のカスタム遷移アニメーションを定義したいようです。スタイルを定義するだけではどうですか? カスタム スタイルで と を定義windowExitAnimation
し、 をオーバーライドするだけです。windoEnterAnimation
windowAnimationStyle
独自のスタイルStyles and Themesを定義する方法については、開発者ガイドをご覧ください。
クラスBaseActivity を作成する
例えば
class BaseActivity extends Activity
{
void onResume()
{
super.onResume();
// your code here (Need to write only once for entire app)
}
void onStop()
{
super.onStop();
// your code here of onStop (Need to write only once for entire app)
}
}
次に、このBaseActivityをクラス内のすべてのアクティビティに使用します。
class MainActivity extends BaseActivity
{
...
}
class AnotherActivity extends BaseActivity
{
...
}
この方法では、BaseActivity での fadeIn と fadeOut のコードを 1 回だけ記述する必要があります。