Изменить replace(), чтобы скрыть / показать фрагмент Android

Я сталкиваюсь с некоторой проблемой с воссозданием фрагментов между переключателями вкладок, и мне нужно заменить текущую систему, которая использует beginTransaction().replace() для beginTransaction().hide/show(), но я получаю пустой фрагмент, когда я называю это, кто-то может помочь мне сделать эту работу?

вот мой класс:

public class MainScreen extends BaseActivity{

private Fragment fragment;

public MainScreen() {
    super(R.string.app_name);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (savedInstanceState != null)
        fragment = getSupportFragmentManager().getFragment(savedInstanceState, "mContent");
    if (fragment == null)
        fragment = new HomeFragment();  

    setContentView(R.layout.main_screen);
    getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).commit();

    setBehindContentView(R.layout.main_menu_frame);
    getSupportFragmentManager().beginTransaction().replace(R.id.main_menu_frame, new MainMenuListFragment()).commit();


    getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
}

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    getSupportFragmentManager().putFragment(outState, "mContent", fragment);
}

@Override
protected void onResume() {
    super.onResume();
    getSlidingMenu().showContent();
}

public void switchContent(Fragment fragment) {

    FragmentManager fm = getSupportFragmentManager();
    android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
    ft.hide(this.fragment);

    this.fragment = fragment; 

    ft.show(fragment);
    ft.commit();
    getSlidingMenu().showContent();
    //getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).commit();
}

public void setActionBarTitle(String title){
    getActionBar().setTitle(title);
}

}

сейчас я делаю

FragmentManager fm = getSupportFragmentManager();
    android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
    ft.hide(this.fragment);

    this.fragment = fragment; 

    ft.show(fragment);
    ft.commit();
    getSlidingMenu().showContent();

Вместо getSupportFragmentManager(). BeginTransaction (). Replace (R.id.content_frame, фрагмент).commit (); Но это оставляет меня пустой фрагмент, когда я прячусь

Кто-нибудь может мне помочь? Спасибо!

0 ответов

Другие вопросы по тегам