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