如何将片段加载到 Sliding TabLayout 中

How to load fragments into SlidingTabLayout

我正在根据自己的要求砍掉 SlidingTabsBasic 示例。我对选项卡式布局做的很少,所以不确定下一步该做什么。

我使用 SlidingTabLayout 创建了 3 个选项卡。我有一个要用于每个片段的片段,但我不知道如何将每个片段加载到选项卡中。 Google 中的示例仅使用选项卡 ID 更改文本标签以匹配选项卡 ID。

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            // Inflate a new layout from our resources
            View view = getActivity().getLayoutInflater().inflate(R.layout.pager_item,
                    container, false);
            // Add the newly created View to the ViewPager
            container.addView(view);

            // Retrieve a TextView from the inflated View, and update it's text
            TextView title = (TextView) view.findViewById(R.id.item_title);
            title.setText(String.valueOf(position + 1));



            // Return the View
            return view;
        }

如果需要,可以 post 所有代码,但不想重载 post。我也没有更改任何其他代码(来自下载的示例)

编辑:

这是我的适配器的代码,它正确地填充了标题,但似乎没有得到碎片(只是得到一个带有标签的白屏。已经创建了 Tab1.java 等,并为每个标签创建了一个布局.)

@Override
public int getCount() {
    return NumbOfTabs;
}

@Override
public Fragment getItem(int position) {
    switch (position) {
        case 0:
            return new Tab1();
        case 1:
            return new Tab2();
        case 2:
            Tab3 tab3 = new Tab3();
            return tab3;
    }
    return 

@Override
public CharSequence getPageTitle(int position) {
    return Titles[position].toUpperCase();
}

我认为简单的答案是您显示的代码片段需要在适配器内。底层机制是一个 ViewPager,当它连接到一个适配器时,将在需要它存在时在每个项目上调用此方法。我没有看过他们的例子,但它会协调每个 'page.'

的调用和处置

要使选项卡正常工作,您需要使用适配器设置。我相信 Google 代码确实有一个为您创建的适配器供您使用。 本质上,您创建一个新的 Java class 来扩展 FragmentStatePagerAdapter(取决于您的需要),然后将 getItem 方法设置为 return 每个选项卡所需的片段。 下面是一个可以帮助您实现目标的示例:

@Override
public Fragment getItem(int position) {
    switch (position) {
        case 0:
            FirstFragment fragment1 = new FirstFragment();
            return fragment1;
        case 1:
            SecondFragment fragment2 = new SecondFragment();
            return fragment2;
        default:
            return null;
    }
}

上面的代码可以让您 select 每个选项卡上需要哪些片段。如果您需要更多帮助,请告诉我

编辑:此外,更好的选项卡名称方法是覆盖适配器中的 getPageTitle class 和 return 您想要的字符串标题。