2015-05-27 61 views
-1

在我的應用程序中,我有3個選項卡(按鈕),並在其滑動片段上更改片段。因此,我使用的是左側滑動片和右側滑動片動畫片。但它似乎不適合我。片段轉換不起作用

Slide_Left

<?xml version="1.0" encoding="utf-8"?> 
<set> 
    <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="1000" 
     android:propertyName="x" 
     android:valueFrom="2000" 
     android:valueTo="0" 
     android:valueType="floatType" /> 
</set> 

片段呼叫

try { 
    String backStateName = fragment.getClass().getName(); 
    String fragmentTag = backStateName; 


    FragmentManager manager = activity.getFragmentManager(); 
    boolean fragmentPopped = manager.popBackStackImmediate(backStateName, 0); 
    if (!fragmentPopped && manager.findFragmentByTag(fragmentTag) == null) { 
     FragmentTransaction ft = manager.beginTransaction(); 
     ft.replace(id, fragment, fragmentTag); 
     ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
     ft.setCustomAnimations(R.animator.slide_in, R.animator.slide_out); 
     ft.addToBackStack(backStateName); 
     ft.commit(); 
    } 
} catch (Exception e) { 

    e.printStackTrace(); 
} 
+0

'((活動)getActivity())。overridePendingTransition (R.animator.slide_in,R.animator.slide_out);' – Skynet

回答

0

使用SlidingTabLayoutViewPager,而不是該手冊動畫... 請參考以下鏈接... 它很容易 https://developer.android.com/samples/SlidingTabsBasic/src/com.example.android.common/view/SlidingTabLayout.html

private class SlideAdapter extends FragmentStatePagerAdapter { 
     public SlideAdapter(FragmentManager supportFragmentManager) { 
     super(supportFragmentManager); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      switch (position) { 
       case 0: 
        return your_first_fragment_object; 
       case 1: 
        return your_first_fragment_object; 
      } 
      return null; 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      switch (position) { 
       case 0: 
        return "Your First tab"; 
       case 1: 
        return "Your Second tab"; 
      } 
      return super.getPageTitle(position); 
     } 

     @Override 
     public int getCount() { 
      return 2; // No of tab you want 
     } 

    } 

完蛋了... 現在就在這個適配器使用setAdapter() ...

分配給ViewPager
+0

是的,我知道但我想要自定義選項卡,我不知道如何自定義它 – Anuj

+0

你只需要處理適配器...只需檢查我編輯的答案。 .. – Moinkhan

+0

先生這個事情我知道,但查詢是我想要的標籤是不同的不是他正常的 – Anuj

0

它可以幫助

@Override 
public Fragment getItem(int position) { 

     switch (position) { 
     case 0: 

      frag = UsageRecoSummaryFragemrent.newInstance(position); 
      // changeColor(newColor); 

      break; 
     case 1: 
      frag = SmsDetailsFrag.newInstance(position); 

      break; 
     case 2: 
      frag = CallDetailsFragment.newInstance(position); 

      break; 
     case 3: 
      frag = MobileDataUsageFragment.newInstance(position); 
      break; 
     default: 
      break; 
     } 
     fragmentReferences.put(position, new WeakReference<Fragment>(frag)); 
     return frag; 
}