我使用tabLayout
有ViewPager
的活动。
代码:
public class Home extends FragmentActivity implements ActionBar.TabListener {
private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
private String[] tabs = { "Instant Opportunity", "Events", "Experts" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
viewPager = (ViewPager) findViewById(R.id.pager);
actionBar = getActionBar();
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Adding Tabs
for (String tab_name : tabs) {
actionBar.addTab(actionBar.newTab().setText(tab_name)
.setTabListener(this));
}
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// on changing the page
// make respected tab selected
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
} Slider的另一项活动,代码如下:
private void displayView(int position) {
// update the main content by replacing fragments
Fragment fragment = null;
switch (position) {
case 0:
fragment = new Home();
break;
case 1:
fragment = new Gallery();
break;
default:
break;
}
现在,在案例0:我想称之为Home活动。但它显示错误。怎么称呼这个?
当我把光标放在新的Home()上时,它说无法从Home转换为Fragment。
答案 0 :(得分:1)
您可以在ViewPager
内使用Fragment
。您必须使用nested fragments方法使用内部片段,您可以阅读文档:
您现在可以将片段嵌入到片段中。这对于您希望将动态和可重用UI组件放入UI组件的各种情况非常有用,该UI组件本身是动态的并且是可用。 例如,如果您使用ViewPager创建左右滑动并占用大部分屏幕空间的片段,则现在可以将片段插入每个片段页面。
您需要将Home
更改为extends Fragment
并使用getChildFragmentManager()
方法作为适配器。关于这种行为有一些有关的帖子:
希望这有帮助。