Android - 每个标签的片段

时间:2014-03-29 19:38:03

标签: android android-fragments fragmentpageradapter

我是Android开发的新手。我有一个使用FragmentPagerAdapter创建标签的活动。一切正常,但我希望每个标签都有自己独特的fragment.xml文件,现在所有标签都显示相同的片段(fragment_home.xml)。

我怀疑问题在于此代码:

public View onCreateView(LayoutInflater inflater, 
                         ViewGroup container, 
                         Bundle savedInstanceState) 
{
        View rootView = inflater.inflate(R.layout.fragment_home, container, false);

        TextView textView = (TextView) rootView
            .findViewById(R.id.section_label);
        textView.setText(Integer.toString(getArguments()
            .getInt(ARG_SECTION_NUMBER)));

        return rootView; 
}

编辑1

我添加了另一个Fragment类来表示另一个Fragment。它有自己的OnCreateView()方法,它会扩展名为fragment_overview.xml的XML文件,并且工作正常。

现在我仍然坚持我想要将两个片段存在于不同标签中的问题。

下面的代码在其OverViewFragment方法中创建getItem()的实例。只返回了一个片段,那么如何制作多个片段呢?

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        // getItem is called to instantiate the fragment for the given page.
        // Return a PlaceholderFragment (defined as a static inner class
        // below).
        return OverviewFragment.newInstance(position + 1);
    }

    @Override
    public int getCount() {
        // Show 3 total pages.
        return 5;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        Locale l = Locale.getDefault();
        switch (position) {
        case 0:
            return getString(R.string.tab1).toUpperCase(l);
        case 1:
            return getString(R.string.tab2).toUpperCase(l);
        }
        return null;
    }
}

1 个答案:

答案 0 :(得分:1)

您好,您必须为每个标签创建单独的片段,并与标签位置链接。您可以参考以下存储库以了解如何执行此操作。 FragmentPageAdapter With Tabs