如何在ViewPagerIndicator中向标签添加片段?

时间:2013-08-15 15:38:42

标签: android android-fragments android-viewpager

我正在关注此库示例并使用此库在ViewPager中创建选项卡并向其中添加片段。

https://github.com/JakeWharton/Android-ViewPagerIndicator/blob/master/sample/src/com/viewpagerindicator/sample/SampleTabsDefault.java

虽然我能够创建标签,但我无法将片段附加到它们上面。有什么帮助吗?

编辑:

我的标签活动如下所示:

public class TabActivity extends SherlockFragmentActivity implements StreamFragment.onStreamSelectedListener{
    TabHost mTabHost;
    TabManager mTabManager;
    Bundle bundle = new Bundle(); 
    Home f1;
    static FragmentTransaction ft;
    static View v;
    public static String currentFragment;


    @Override   
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_tab);
        mTabHost = (TabHost)findViewById(android.R.id.tabhost);
        mTabHost.setup();
        bundle.putString("stream","sourceId"); 


        mTabManager = new TabManager(this, mTabHost, R.id.realtabcontent);

        mTabManager.addTab(mTabHost.newTabSpec("home").setIndicator("Home"),
                        Home.class, null);
        mTabManager.addTab(mTabHost.newTabSpec("streams").setIndicator("Streams"),
                StreamFragment.class, null); 
        mTabManager.addTab(mTabHost.newTabSpec("source").setIndicator("Source"),
                SourceFragment.class, bundle); 
         f1 = (Home) getSupportFragmentManager().findFragmentByTag("home");

        if (savedInstanceState != null) {
            mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab"));
        }
    }

声明了tabmanager,用于处理选项卡切换和onStreamSelectedListener,它有助于连接选项卡。

现在,当我尝试使用它实现时:

https://github.com/commonsguy/cw-omnibus/blob/master/ViewPager/VPI/src/com/commonsware/android/pager3/SampleAdapter.java

关于在视图中加载片段的位置以及如何在它们之间进行通信,我有点困惑。

我尝试过这样的事情:

 @Override
  public Fragment getItem(int position) {
    if(position == 1)
          return(Home.newInstance(position));
    else if (position == 2)
           return(StreamFragment.newInstance(position));
  ....
  }

但我不确定这是不是马上做到这一点。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

您没有使用ViewPagerIndicator“将片段附加到”标签。无论是使用片段还是其他内容,您都可以通过ViewPager填充PagerAdapter。反过来,PagerAdapter的内容将驱动标签的内容。

而且,一旦GitHub再次运行,您可以查看this sample project以查看ViewPager中片段的工作示例,其中TabPagerIndicator提供的选项卡来自ViewPagerIndicator库