2016-11-03 51 views
0

我在android上工作,這顯示在我測試過的每個版本中的所有設備,模擬器和物理上。從屏幕到屏幕的轉換都是相同的,除非您從任何地方轉到主屏幕。這是片段代碼。爲什麼我的一項活動的過渡不同?

public class NavBarFragment extends Fragment implements View.OnClickListener{ 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     View v = inflater.inflate(R.layout.nav_bar_frag, container, false); 

     Button homeButton = (Button) v.findViewById(R.id.homeButton); 
     Button vaultButton = (Button) v.findViewById(R.id.vaultButton); 
     Button shopButton = (Button) v.findViewById(R.id.shopButton); 
     Button accInfoButton = (Button) v.findViewById(R.id.accInfoButton); 

     homeButton.setOnClickListener(this); 
     vaultButton.setOnClickListener(this); 
     shopButton.setOnClickListener(this); 
     accInfoButton.setOnClickListener(this); 

     return v; 
    } 


    @Override 
    public void onClick(View v) { 
     Intent intent = null; 
     switch (v.getId()) { 

      case R.id.homeButton: 
       intent = new Intent(getActivity(), TasksScreenActivity.class); 
       break; 

      case R.id.vaultButton: 
       intent = new Intent(getActivity(), ChestActivity.class); 
       break; 

      case R.id.shopButton: 
       intent = new Intent(getActivity(), ShopActivity.class); 
       break; 

      case R.id.accInfoButton: 
       intent = new Intent(getActivity(), AccountActivity.class); 
       break; 

      default: 
       System.err.println("Error onClick in NavBarFragment"); 
       break; 
     } 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
//  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
//  intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
     startActivity(intent); 
    } 
} 

,這裏是清單

<activity android:name=".TasksScreenActivity" 
    android:launchMode="singleTask"> 
</activity> 

<activity android:name=".ChestActivity" 
    android:launchMode="singleTask"> 
</activity> 

<activity android:name=".ShopActivity" 
    android:launchMode="singleTask"> 
</activity> 

<activity android:name=".AccountActivity" 
    android:launchMode="singleTask"> 
</activity> 

的相關部分,據我所知道的,我所做的一切對他們都一樣,它應該是一致的。對於所有其他屏幕,動畫顯示淡入,就像它彈出一樣,對於主頁,它顯示淡出,就像縮小到中間然後消失。

我的問題是,它們不一致,我不在乎結束轉換是什麼,只要它們都是一樣的。

+0

什麼是你的** **具體問題? – OBX

+0

我希望他們一致 – CookieMonster

+0

這個片段在哪個活動? –

回答

4
Intent intent = new Intent(activity, clazz); 
activity.startActivity(intent); 
activity.overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); 

使用overridePendingTransition設置過渡爲所有新的觀看活動,

4

提供的答案是正確的,但你也可以像下面,如果你不希望在活動過渡任何動畫。

Intent intent = new Intent(activity, clazz); 
activity.startActivity(intent); 
activity.overridePendingTransition(0, 0); 

它可能會幫助您在沒有動畫需要時。

4

你可以使用默認的動畫,

Intent intent = new Intent(activity, clazz); 
activity.startActivity(intent); 
activity.overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);