我正在尝试Android的新TabLayout类,在我的ActionBar下面添加两个标签。每个选项卡将托管不同的片段。
此外,我不希望能够在我的两个标签之间滑动 - 在我的标签之间导航,我希望能够只触摸我想要导航到的标签。
在我的MainActivity中,我有:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.addTab(tabLayout.newTab().setText("Newsfeed"));
tabLayout.addTab(tabLayout.newTab().setText("Random"));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
// IDEALLY HERE, I'd like to do something like
// tab.setFragment(new MainFragment()).
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
所以我想覆盖我的onTabSelected和onTabReselected方法,这样在两个标签之间切换会分别显示两个不同的片段。我在网上找不到很多关于独立于ViewPager的新TabLayout。
任何线索?谢谢!
答案 0 :(得分:7)
@Override
public void onTabSelected(TabLayout.Tab tab) {
Fragment f=heyWhatFragmentGoesInThisTab(tab);
getFragmentManager()
.beginTransaction().replace(R.id.where_the_tab_contents_go, f).commit();
}
你需要写的地方:
heyWhatFragmentGoesInThisTab()
返回应根据所选标签显示的Fragment
,
R.id.where_the_tab_contents_go
,FrameLayout
,用作活动片段的容器
IOW,您更改片段以响应TabLayout
,就像更改片段以响应操作栏项目点击,导航抽屉项目点击或任何其他GUI事件一样。