我正在关注此库示例并使用此库在ViewPager中创建选项卡并向其中添加片段。
虽然我能够创建标签,但我无法将片段附加到它们上面。有什么帮助吗?
编辑:
我的标签活动如下所示:
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,它有助于连接选项卡。
现在,当我尝试使用它实现时:
关于在视图中加载片段的位置以及如何在它们之间进行通信,我有点困惑。
我尝试过这样的事情:
@Override
public Fragment getItem(int position) {
if(position == 1)
return(Home.newInstance(position));
else if (position == 2)
return(StreamFragment.newInstance(position));
....
}
但我不确定这是不是马上做到这一点。有什么帮助吗?
答案 0 :(得分:1)
您没有使用ViewPagerIndicator“将片段附加到”标签。无论是使用片段还是其他内容,您都可以通过ViewPager
填充PagerAdapter
。反过来,PagerAdapter
的内容将驱动标签的内容。
而且,一旦GitHub再次运行,您可以查看this sample project以查看ViewPager
中片段的工作示例,其中TabPagerIndicator
提供的选项卡来自ViewPagerIndicator库