片段中未定义的getSupportFragmentManager() [英] getSupportFragmentManager() undefined in Fragment
问题描述
在创建带有滑动选项卡的滑块菜单时,我在getSupportFragmentManager()上收到错误消息此方法在Fragment中未定义".
i'm getting error on getSupportFragmentManager() that "this method undefine in Fragment", while creating slider menu with sliding tab i prepared code as bellow..
public class HomeFragment extends Fragment {
Toolbar toolbar;
ViewPager viewpager;
ViewPagerAdapter adapter;
SlidingTabLayout tabs;
CharSequence Titles1[] = { "Home", "Help", "Contect" };
// int Titles[] = { R.drawable.ic_content_copy_black_24dp,
// R.drawable.ic_refresh_black_24dp, R.drawable.ic_share_black_24dp };
int NumOfTabs = 3;
public HomeFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container,
false);
return rootView;
adapter = new ViewPagerAdapter(getSupportFragmentManager(), Titles1,
NumOfTabs);
viewpager = (ViewPager) rootView.findViewById(R.id.pager);
viewpager.setAdapter(adapter);
tabs = (SlidingTabLayout) rootView.findViewById(R.id.tabs);
tabs.setDistributeEvenly(true);
}
我的ViewPager适配器类如下所示
and my adapter class for ViewPager is as bellow
public class ViewPagerAdapter extends FragmentStatePagerAdapter{
CharSequence Titles1[];
int Titles[];
int NumbOfTabs;
public ViewPagerAdapter(FragmentManager fm, CharSequence mTitles[], int mNumbOfTabs) {
super(fm);
this.Titles1 = mTitles;
this.NumbOfTabs = mNumbOfTabs;
}
@Override
public Fragment getItem(int arg0) {
if(arg0 == 0){
Tab1 tab1 = new Tab1();
return tab1;
}else if(arg0 == 1){
Tab2 tab2 = new Tab2();
return tab2;
}else{
Tab3 tab3 = new Tab3();
return tab3;
}
}
@Override
public CharSequence getPageTitle(int position) {
return Titles1[position];
}
@Override
public int getCount() {
return NumbOfTabs;
}
推荐答案
只需替换:
getSupportFragmentManager()
具有:
getFragmentManager()
如果使用的是android.support.v4.app.Fragment
,它将返回android.support.v4.app.FragmentManager
(SupportFragmentManager)
If you are using a android.support.v4.app.Fragment
it will return a android.support.v4.app.FragmentManager
(SupportFragmentManager)
如果您使用的是android.app.Fragment
,它将返回一个android.app.FragmentManager
If you are using a android.app.Fragment
it will return a android.app.FragmentManager
请记住,它在Activity中的处理方式与在android.support.v4.app.FragmentActivity
中的处理方式不同.那里有getSupportFragmentManager()
和getFragmentManager()
Keep in mind that it handled different that in Activities.Like in the android.support.v4.app.FragmentActivity
. There you have got getSupportFragmentManager()
and getFragmentManager()
这篇关于片段中未定义的getSupportFragmentManager()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!