我怎样才能使动作条在片段的标签? [英] How can I enable actionbar tabs in a fragment?
问题描述
我从活动切换到分片,现在我得到这个错误
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 methodsetNavigationMode(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屋!