【发布时间】:2017-05-30 03:09:24
【问题描述】:
由于某种原因,当我调用 addFrag 函数/方法来填充片段和字符串标题时出现错误。我正在使用适配器创建一个简单的ViewPager。顺便说一句,这一切都在一个片段中。代码如下:
public class HomeFragment extends Fragment {
private View view;
private ViewPager viewPager;
private TabLayout tabLayout;
private PagerAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup viewGroup,
@Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.home_fragment, viewGroup, false);
viewPager = (ViewPager) view.findViewById(R.id.viewpager);
setUpViewPager(viewPager);
tabLayout = (TabLayout) view.findViewById(R.id.sliding_tabs);
tabLayout.post(new Runnable() {
@Override
public void run() {
tabLayout.setupWithViewPager(viewPager);
}
});
return view;
}
private void setUpViewPager(ViewPager viewPager) {
adapter = new ViewPagerAdapter(getChildFragmentManager());
adapter.addFrag(new ContentFragment(), "ONE");
adapter.addFrag(new ContentFragment(), "TWO");
adapter.addFrag(new ContentFragment(), "THREE");
viewPager.setAdapter(adapter);
}
}
class ViewPagerAdapter extends FragmentPagerAdapter{
private final List<Fragment> fragmentList = new ArrayList<>();
private final List<String> tabTitles = new ArrayList<>();
//Default Fragment Constructor
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
public void addFrag(Fragment fragment, String title){
fragmentList.add(fragment);
tabTitles.add(title);
}
@Override
public CharSequence getPageTitle(int position){
return tabTitles.get(position);
}
}
当我尝试输入 adapter.addFrag(new ExampleFragment(), "Hello"); 时,我收到一个错误,无法解析方法 addFrag。任何帮助将不胜感激。
【问题讨论】:
-
什么是
ContentFragment()? -
ContentFragment() 是片段的实例,例如,我将创建一个名为 ContentFragment 的新类并扩展 Fragment。
标签: java android android-fragments android-viewpager android-tablayout