java - 如何在 fragment 中启用操作栏选项卡?

标签 java android android-fragments android-viewpager android-tabs

我从 Activity 切换到 Fragment,现在我收到了这个错误

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

来自以下行

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

如何使这些选项卡在具有基础 ActionBarActivity 的 fragment 中工作?

其余代码

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

堆栈跟踪

 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)

最佳答案

API 21 中,方法 setNavigationMode(ActionBar.NAVIGATION_MODE_TABS) 已弃用。引用this .

如果你喜欢像 google play 商店风格的标签,你可以使用 PagerSlidingTabStrip library .

关于java - 如何在 fragment 中启用操作栏选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28901821/

相关文章:

java - 寻找朝拜方向的通用逻辑

android - 我想使用 Google Java Api Client 在 netbeans 上设置 android 项目?

java - Fragment 的什么生命周期方法执行 AsyncTask?

java - OrcRelation不可分配给HadoopFsRelation

java - Spring 启动 : gracefully shutdown by controlling termination order involving MongoClient

android - Gradle 脚本自动版本并在 Android 中包含提交哈希

javascript - 单击 Javascript 中的按钮显示 android DatePicker

android - 更新同一对话 fragment 的多个实例

android - 如何刷新所选项目微调器上的 fragment

java - 使用 Apache POI 设置 Excel 单元格的 RGB 背景颜色