2016-12-21 8 views
-1

フラグメント間でアニメーションを作成しようとしています。私はフラグメントを管理するためにFragNavライブラリを使用しています。私はフラグメントの遷移に関連するほとんどすべての答えを見てきましたが、問題を並べ替えることはできません。誰でも私を助けることができますか?また、下部のタブバーを使用してフラグメントにナビゲートしています。ここでFragNavライブラリのフラグメント間の遷移をアニメーション化します

は私のMainActivity最後に

public class MainActivity extends AppCompatActivity { 


private FragNavController fragNavController; 


//indices to fragments 
private final int TAB_FIRST = FragNavController.TAB1; 
private final int TAB_SECOND = FragNavController.TAB2; 
private final int TAB_THIRD = FragNavController.TAB3; 
private final int TAB_FOURTH = FragNavController.TAB4; 

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

    //FragNav 
    //list of fragments 
    List<Fragment> fragments = new ArrayList<>(4); 

    //add fragments to list 
    fragments.add(TrackFragment.newInstance(0)); 
    fragments.add(SecureFragment.newInstance(0)); 
    fragments.add(AlertsFragment.newInstance(0)); 
    fragments.add(MoreFragment.newInstance(0)); 

    //link fragments to container 
    fragNavController = new FragNavController(getSupportFragmentManager(),R.id.container,fragments); 
    // FragNavController.setTransitionMode(R.anim.slide_in_left, R.anim.slide_in_right); 
    FragNavController.setTransition(R.anim.slide_in_left, R.anim.slide_out_right); 

    FragNavController.setTransitionMode(); 
    //End of FragNav 

    AHBottomNavigation bottomNavigation = (AHBottomNavigation) findViewById(R.id.bottom_navigation); 

    // Create items 
    AHBottomNavigationItem item1 = new AHBottomNavigationItem(R.string.tab_1, R.drawable.track_g, R.color.white); 
    AHBottomNavigationItem item2 = new AHBottomNavigationItem(R.string.tab_2, R.drawable.car_g, R.color.white); 
    AHBottomNavigationItem item3 = new AHBottomNavigationItem(R.string.tab_3, R.drawable.alarm_g, R.color.white); 
    AHBottomNavigationItem item4 = new AHBottomNavigationItem(R.string.tab_4, R.drawable.more_g, R.color.white); 


    // Add items 
    bottomNavigation.addItem(item1); 
    bottomNavigation.addItem(item2); 
    bottomNavigation.addItem(item3); 
    bottomNavigation.addItem(item4); 

    // Set background color 
    bottomNavigation.setDefaultBackgroundColor(Color.parseColor("#FFFFFF")); 

    // Change colors 
    bottomNavigation.setAccentColor(Color.parseColor("#F63D2B")); 
    bottomNavigation.setInactiveColor(Color.parseColor("#747474")); 

    // Force to tint the drawable (useful for font with icon for example) 
    bottomNavigation.setForceTint(true); 

    // Manage titles 
       bottomNavigation.setTitleState(AHBottomNavigation.TitleState.ALWAYS_SHOW); 

    // Set current item programmatically 
    bottomNavigation.setCurrentItem(1); 

    // Set listeners 
    bottomNavigation.setOnTabSelectedListener(new AHBottomNavigation.OnTabSelectedListener() { 
     @Override 
     public boolean onTabSelected(int position, boolean wasSelected) { 
      if (position == 0){ 
        fragNavController.switchTab(TAB_FIRST); 

       } 
       if (position == 1){ 
        fragNavController.switchTab(TAB_SECOND); 
       } 
        if (position == 2){ 
        fragNavController.switchTab(TAB_THIRD); 
        } 
       else if (position == 3){ 
        fragNavController.switchTab(TAB_FOURTH); 
        } 
      return true; 
     } 
    }); 
} 

}

答えて

0

答えを得ています。

setTransitionMode()は静的メソッドではないため、FragNavControllerオブジェクトのインスタンスから使用する必要があります。

FragNavControler fragNavController = new FragNavController(savedInstanceState, getSupportFragmentManager(), R.id.container, fragments, INDEX_RECENTS); 
fragNavController.setTransitionMode(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
0

更新:以下のFragNavの新しいバージョンによると、フラグメントのデフォルトトランザクションを宣言するための実装です。

mNavController = FragNavController.newBuilder(savedInstanceState, getSupportFragmentManager(), R.id.myScrollingContent) 
       .transactionListener(this) 
       .rootFragmentListener(this, 5) 
       .defaultTransactionOptions(FragNavTransactionOptions.newBuilder().transition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).build()) 
       .build(); 
関連する問題