1

我正在与viewpagerTablayout安卓应用程序。这是从父活动从片段viewpager返回空白

public class HomeFragment extends Fragment{ 
    private SectionsPagerAdapter mSectionsPagerAdapter; 
    private ViewPager mViewPager; 
public HomeActivity() { 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.fragment_home, container, false); 

    mSectionsPagerAdapter = new SectionsPagerAdapter(getFragmentManager()); 

    mViewPager = (ViewPager) rootView.findViewById(R.id.container); 
    mViewPager.setAdapter(mSectionsPagerAdapter); 

    TabLayout tabLayout = (TabLayout) rootView.findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(mViewPager); 
    return rootView; 
} 
} 

打开我的观点寻呼机片段,这是我的适配器viewpager

public class SectionsPagerAdapter extends FragmentStatePagerAdapter { 

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

@Override 
public Fragment getItem(int position) { 
    switch (position){ 
     case 0 : return new Settingsfragment(); 
     case 1 : return new Profilefragment(); 
     case 2 : return new Categoriesfragment(); 
    } 
    return null; 
} 
@Override 
public int getCount() { 
    // Show 3 total pages. 
    return 3; 
} 
@Override 
public CharSequence getPageTitle(int position) { 
    switch (position) { 
     case 0: 
      return "settings"; 
     case 1: 
      return "profile"; 
     case 2: 
      return "Category"; 
    } 
    return null; 
} 
} 

当我打开一个片段与下面的代码,然后按回viewpager成为空

public class Profilefragment extends Fragment { 
public Profilefragment(){} 
@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.profile_layout, container, false); 

    TextView VE = (TextView) rootView.findViewById(R.id.profile_view_enquiry); 
    VE.setOnClickListener(new View.OnClickListener(){ 
     public void onClick (View view){ 
      Fragment fragment = null; 
      fragment = new Enquiryfragment(); 
      replaceFragment(fragment); 
     } 
    }); 

    TextView CA = (TextView) rootView.findViewById(R.id.profile_change_address); 
    CA.setOnClickListener(new View.OnClickListener(){ 
     public void onClick (View view){ 
      Fragment fragment = null; 
      fragment = new ChangeAddressfragment(); 
      replaceFragment(fragment); 
     } 
    }); 

    return rootView; 
} 
public void replaceFragment(Fragment someFragment) { 
    android.support.v4.app.FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
    transaction.replace(R.id.containerView, someFragment); 
    transaction.addToBackStack(null); 
    transaction.commit(); 
}} 

我该如何解决这个问题。请帮忙。

+0

从正在打开HomeActivity? –

+0

请将所有片段重命名为它们各自的名称..通过为所有片段设置活动后缀,它确实很糟糕 –

+0

@DharmbirSingh我从mainactivity打开主页 – Selva

回答

0
public class HomeFragment extends Fragment{ 
    private SectionsPagerAdapter mSectionsPagerAdapter; 
    private ViewPager mViewPager; 

    public HomeFragment() {} 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_home, container, false); 

     mSectionsPagerAdapter = new SectionsPagerAdapter(getChildFragmentManager());//Changed here 

     mViewPager = (ViewPager) rootView.findViewById(R.id.container); 
     mViewPager.setAdapter(mSectionsPagerAdapter); 

     TabLayout tabLayout = (TabLayout) rootView.findViewById(R.id.tabs); 
     tabLayout.setupWithViewPager(mViewPager); 
     return rootView; 
    } 
} 

您应该使用getChildFragmentManager()代替getFragmentManager()Fragment

+0

我已经在关闭应用程序时尝试了它 – Selva

+0

添加捕捉您已经实现的内容,你想要什么 –

+0

我的主要活动有导航抽屉时,导航抽屉项目选择它打开了我的视图页面浏览器中的视图寻呼机我点击查看页面上的主要活动片段上打开的片段项目 – Selva