【问题标题】:on TabHost Change Fragment not loading在 TabHost 更改片段未加载
【发布时间】:2014-10-14 15:39:04
【问题描述】:

我正在开发一个应用程序,该应用程序在 FragmentActivity 中使用 TabHost 有 3 个选项卡,我将它们称为

private void setTabContent() 
{
    mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
    mTabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent);

    mTabHost.addTab(mTabHost.newTabSpec("trends").setIndicator("",getResources().getDrawable(R.drawable.icon_trends)),VolumeViewFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("distribution").setIndicator("",getResources().getDrawable(R.drawable.icon_distribution)),ChannelsAndLanguageFilterFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("Social").setIndicator("",getResources().getDrawable(R.drawable.icon_hits)),SocialDataListViewFragment.class, null);
}

现在两个选项卡有 viewpager 来显示像这样的片段

@Override
public void onActivityCreated(Bundle savedInstanceState) 
{
    super.onActivityCreated(savedInstanceState);
    sAdapter = new sViewPageAdapter(getFragmentManager());
    sPager = (ViewPager) getView().findViewById(R.id.social_pager);
    sPager.setBackgroundColor(color.title_background_color);
    sPager.setAdapter(sAdapter);    
}

public static class sViewPageAdapter extends FragmentPagerAdapter
{

    public sViewPageAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        Fragment f = null;
        switch(position)
        {
        case 0:
            f= SocialHitsFragment.newInstance();
            break;
            //SocialHitsFragment smFrag = new SocialHitsFragment();
            //return smFrag;
        case 1:
            f = SocialReachFragment.newInstance();
            break;
            //SocialReachFragment srFrag = new SocialReachFragment();
            //return srFrag;
        }
        return f;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return NUM_FRA;
    }

现在其中一个片段在 Listview 中显示数据,另一个片段显示图表。 当我第一次运行应用程序并更改选项卡时,它工作正常。但是当我切换回来时,片段什么也没有显示。除了显示 viewpager 之外,它不会加载数据。我觉得,我走错了路或错过了一些东西。请帮助..我是片段的新手..

【问题讨论】:

    标签: android android-fragments android-viewpager android-tabhost


    【解决方案1】:
    if you are using a fragmentTabHost inside a  Fragment you can do like this,
    
     mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
     mTabHost.setup(this, getChildFragmentManager(), android.R.id.tabcontent);
    // use getChildFragmentManager instead of getSupportFragmentManager
    

    // 检查是否在 onActiviyCreated 中为 ViewPager 设置了换页监听 sPager.setOnPageChangeListener(this);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多