5

przeszedłem z działalności fragmentowi i teraz otrzymuję błąd tenJak włączyć karty akcji w fragmencie?

java.lang.IllegalArgumentException: Tabs nie są obsługiwane w tym konfiguracji

z poniższej linii

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

Jak mogę sprawić, aby te karty działały w fragmencie z bazą ActionBarActivity?

reszta kodu

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


     act = (ActionBarActivity)getActivity(); 

     final ActionBar actionBar = act.getSupportActionBar(); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     mViewPager = (ViewPager) inflater.inflate(R.layout.activity_saved, container, false); 

     mSectionsPagerAdapter = new SectionsPagerAdapter(
       getFragmentManager()); 

     mViewPager.setAdapter(mSectionsPagerAdapter); 

     mViewPager 
       .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 
        @Override 
        public void onPageSelected(int position) { 
         actionBar.setSelectedNavigationItem(position); 
        } 
       }); 

     for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) { 

      actionBar.addTab(actionBar.newTab() 
        .setText(mSectionsPagerAdapter.getPageTitle(i)) 
        .setTabListener(SavedActivity.this)); 
     } 


     return mViewPager; 
    } 

stos ślad

java.lang.IllegalArgumentException: Tabs not supported in this configuration 
at android.support.v7.internal.app.ToolbarActionBar.setNavigationMode(ToolbarActionBar.java:325) 
at my.package.myFragment.onCreateView(myFragment.java:48) 
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126) 
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739) 
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489) 
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:454) 
at android.os.Handler.handleCallback(Handler.java:733) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5146) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566) 
at dalvik.system.NativeStart.main(Native Method) 

Odpowiedz

3

Z API 21 zastosowano metodę setNavigationMode(ActionBar.NAVIGATION_MODE_TABS) jest przestarzała. Patrz this.

Jeśli wolisz mieć zakładki w stylu sklepu Google Play, możesz użyć PagerSlidingTabStrip library.

+0

Możesz też użyć ViewPagera i FragmentPagerAdapter. A następnie SlidingTabLayout (klasa dostarczona przez Google na niektórych przykładach) –