2017-03-17 5 views
2

アンドロイドスタジオで、ボタンをクリックすると、次のアクティビティ/フラグメントが右側から来て、現在のアクティビティが消えてしまいます。私はアクティビティの作業を促しましたが、アダプタ上ではエラーを表示していません。アンドロイドスタジオで、ボタンをクリックすると、次のアクティビティ/フラグメントが右側から来るはずです

holder.questions.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent i = new Intent(DoctorsProfile.this,Questions.class); 
      i.putExtra("DOCTOR_ID",doctor_id); 
      startActivity(i); 
      overridePendingTransition(R.anim.slide_in_right_up, R.anim.slide_out_right_up); 

     } 
    }); 

overridePendingTransitionが活動に取り組んではなくRecyclerviewとリストビューのアダプタ上で動作していない、他のオプションを教えてください。私は、recyclingviewアイテムをクリックすると、nextアクティビティはoverridePendingTransitionを使用して右端からナビゲートするか、右端に移動する必要があります。

+0

あなたは代わりに "R.anim.slide_out_right_up" の "R.anim.slide_out_left_up" のような第2アニメーションのpropertieを設定する必要があります。 –

+0

私の答えをチェック...助けてもらえますか? –

+0

FLAG \ _ACTIVITY \ _REORDER \ _TO \ _FRONTが使用されていると[overridePendingTransitionの重複した可能性があります](http://stackoverflow.com/questions/4633543/overridependingtransition-does-not-work-when-flag) -act-reorder-to-front-is-u) –

答えて

0

これを行う簡単な方法があります。次のActivity/FragmentのOnCreateメソッドにoverridePendingTransitionを配置するだけです。次のActivityが来るときは、あなたのchoice.Needに応じてアダプタにoverridePendingTransitionを追加する必要はありません。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_ask_question); 
    overridePendingTransition(R.anim.slide_in_right_up, R.anim.slide_out_right_up); 
    } 
+0

OnCreateで呼び出されたoverridePendingTransitionは、新しいインテントがこのアクティビティになるすべてのトランジションに対して呼び出されます。 –

2
Fragment fragment = Fragment.newInstance(); 
    FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
    fragmentTransaction.setCustomAnimations(R.anim.fragment_slide_left_enter, 
      R.anim.fragment_slide_left_exit, R.anim.fragment_slide_right_enter, 
      R.anim.fragment_slide_right_exit); 
    Utils.addFragmentToActivity(fragmentTransaction, Fragment, R.id 
      .content_frame); 
+0

しかし、アニメーションファイルを作成して、どのWebサイトからでも見つけることができます。 –

1

このヒントでは、アクティビティの切り替え時にAndroidのデフォルトアニメーションを変更する方法について説明します。 2つのアクティビティ間でアニメーションを変更するコードは非常に簡単です。新しいインテントを開始した後、現在のアクティビティからoverridePendingTransition()を呼び出すだけです。このメソッドは、Androidバージョン2.0(APIレベル5)から使用でき、現在のアクティビティの入力アニメーションと終了アニメーションを定義するために使用される2つのパラメータを取ります。 例: //新しいアクティビティを呼び出します。

startActivity(新しいインテント(this、NewActivity.class));

//遷移を設定 - >アンドロイド2.0からと

overridePendingTransition(R.anim.slide_in_right_up、R.anim.slide_out_right_up)を超えて利用可能な方法。

これらの2つのパラメータは、XMLファイルで定義されたアニメーションのリソースIDです(アニメーションごとに1つ)。これらのファイルは、アプリケーションのres/animフォルダ内に配置する必要があります。これらのファイルの例は、Android APIデモのanimフォルダ内にあります。サンプルコードの訪問のため

http://www.christianpeeters.com/android-tutorials/tutorial-activity-slide-animation/#more-483

+0

コード例:http://www.christianpeeters.com/androidチュートリアル/チュートリアル - アクティビティ - スライドアニメーション/#more-483それがあなたを助けてくれることを願っています。 –

1

あなたは、アダプタにコンテキストとしての活動を渡しする必要があります。このコードのように変更

holder.questions.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
    Intent i = new Intent(DoctorsProfile.this,Questions.class); 
      i.putExtra("DOCTOR_ID",doctor_id); 
      Activity activity = (Activity) context; 
    activity.startActivity(i); 
    activity.overridePendingTransition(R.anim.slide_in_right_up, R.anim.slide_out_right_up); 
     } 
    }); 

注:コンテキスト活動

更新の基本オブジェクトであります: 私は受け入れられた答えをチェックしましたが、あなたはそれがeverytiあなたの活動が始まり、ベストプラクティスではないと思われるものが私にはあります。私はあなたが受け入れられた答えに従いたいなら、より良いアプローチを提案しています。あなたはまた、ROMに他のアクティビティを来ているときに、特定のアダプタからの移行はそれほど重のトランザクションの独立起こるべきでないことを確認するために、新たな活動へのバンドルで 峠つのパラメータ:

代替。

関連する問題