我怎样才能使动作条在片段的标签? [英] How can I enable actionbar tabs in a fragment?

查看:115
本文介绍了我怎样才能使动作条在片段的标签?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从活动切换到分片,现在我得到这个错误


  

java.lang.IllegalArgumentException异常:标签在此支持
  配置


从以下行

  actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

我怎样才能让这些标签的片段工作,基地ActionBarActivity?

的code休息

  @覆盖
    公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedInstanceState){
        ACT =(ActionBarActivity)getActivity();        最后的动作条动作条= act.getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(真);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        mViewPager =(ViewPager)inflater.inflate(R.layout.activity_saved,集装箱,FALSE);        mSectionsPagerAdapter =新SectionsPagerAdapter(
                getFragmentManager());        mViewPager.setAdapter(mSectionsPagerAdapter);        mViewPager
                .setOnPageChangeListener(新ViewPager.SimpleOnPageChangeListener(){
                    @覆盖
                    公共无效使用onPageSelected(INT位置){
                        actionBar.setSelectedNavigationItem(位置);
                    }
                });        的for(int i = 0; I< mSectionsPagerAdapter.getCount();我++){            actionBar.addTab(actionBar.newTab()
                    .setText(mSectionsPagerAdapter.getPageTitle(I))
                    .setTabListener(SavedActivity.this));
        }
        返回mViewPager;
    }

堆栈跟踪

  java.lang.IllegalArgumentException异常:标签在此配置支持
在android.support.v7.internal.app.ToolbarActionBar.setNavigationMode(ToolbarActionBar.java:325)
在my.package.myFragment.onCreateView(myFragment.java:48)
在android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
在android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
在android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
在android.support.v4.app.FragmentManagerImpl $ 1.run(FragmentManager.java:454)
在android.os.Handler.handleCallback(Handler.java:733)
在android.os.Handler.dispatchMessage(Handler.java:95)
在android.os.Looper.loop(Looper.java:136)
在android.app.ActivityThread.main(ActivityThread.java:5146)
在java.lang.reflect.Method.invokeNative(本机方法)
在java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:732)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
在dalvik.system.NativeStart.main(本机方法)


解决方案

随着 21 API 方法 setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)是pcated德$ p $。请参阅<一个href=\"http://developer.android.com/reference/android/support/v7/app/ActionBar.html#setNavigationMode(int)\"相对=nofollow>这个。

如果您preFER有一个标签像谷歌Play商店的风格,ü可以使用 PagerSlidingTabStrip库

I switched from Activity to Fragment and now I am getting the this error

java.lang.IllegalArgumentException: Tabs not supported in this configuration

from the following line

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

How can I make these tabs work in a fragment with base ActionBarActivity?

rest of the code

@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;
    }

stack trace

 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)

解决方案

With the API 21 the method setNavigationMode(ActionBar.NAVIGATION_MODE_TABS) is deprecated. Refer this.

If you prefer to have a tabs like google play store style, u can use PagerSlidingTabStrip library.

这篇关于我怎样才能使动作条在片段的标签?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆