0

何らかの理由でアニメーションを再生しない単純なフラグメントの切り替えにますます不満を感じています。

フラグメントの切り替え自体が機能し、新しいフラグメントが表示されます。ただし、遷移はありません。

誰かが理由を理解するのを手伝ってくれますか? これが私のフラグメントトランザクションコードです:

public class FullscreenActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fullscreen);
    }

    @Override
    protected void onResume() {
        super.onResume();

        new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {
                FragmentTransaction transaction = getFragmentManager().beginTransaction();
                transaction.setCustomAnimations(R.anim.slide_out_right, R.anim.slide_out_right);
                transaction.replace(R.id.root, new InitialFragment(),"DDDDD");
                transaction.commit();

            }
        }, 3000L);

    }
}

ここで、slide_out_right.xml では、名前が誤解を招きます。アニメーション パラメータを台無しにしないように、より基本的な名前に設定しました。

<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
    android:valueFrom="0"
    android:valueTo="1"
    android:propertyName="alpha"
    android:duration="@android:integer/config_mediumAnimTime" />

いずれにせよ、何の効果も見られません。setTranstition(FragmentTransiniot.TRANSIT_ ALLMOST_ALL_OF_THE_FLAGS ) を使用してみましたが、何も効果がないように見えました。

私はサポート ライブラリ経由でフラグメントを使用していません。Android 4.1.2 を搭載したルート化された Galaxy S でテストしています。

4

2 に答える 2

4

私自身の質問に答える: フラグメントにまったく効果が見られなかったので、どのようなアニメーションを試して書いたとしても、よりグローバルな何かが間違っていると考えました。そして答えは驚くほど愚かでした。

爆破された開発用携帯電話では、Android の [設定] メニューの [開発オプション] でアニメーターが無効になっていました。これを理解するのにどれだけの時間がかかったのかを書くのは恥ずかしいですが、他の誰かがこれから恩恵を受けることができれば幸いです.

于 2013-04-10T13:09:09.130 に答える