2014-09-11 2 views
0

В главном разделе моего макета экрана показан набор элементов. Использование может выбрать, следует ли показывать сетку или список. Поэтому я реализовал два фрагмента (для списка и сетки), которые затем отображаются внутри заполнителя (основной раздел основного макета).своп между сеткой и фрагментами списка

Но теперь я задаюсь вопросом, как повторно использовать фрагменты, чтобы иметь последнюю позицию прокрутки и т. Д. Если я помню фрагмент в частном поле вместо его повторного создания, то представление остается пустым.

Любая идея?

public void onShowGrid(View view) { 

    // how to re-use instead of re-create 
    fragmentGrid = new PreviewGridFragment(); 

    this.getFragmentManager().beginTransaction() 
      .replace(R.id.preview_fragment, fragmentGrid) 
      .addToBackStack(null).commit(); 
} 

public void onShowList(View view) { 

    // how to re-use instead of re-create 
    fragmentList = new PreviewListFragment(); 

    this.getFragmentManager().beginTransaction() 
      .replace(R.id.preview_fragment, fragmentList) 
      .addToBackStack(null).commit(); 
} 

Dynamic Fragments

+0

Вместо использования фрагмента используйте view.setvisibility, это тихо, легко управлять –

+0

Правда, но это означает использование большого количества памяти. Но сохранение фрагментов будет одинаковым объемом памяти. – Matthias

+0

Я хочу использовать те же фрагменты в других частях моего приложения. Поэтому фрагменты - лучший выбор, чем взгляды. – Matthias

ответ

0

Я думаю, что это не очень хорошая идея, чтобы сохранить фрагменты в частных полях, поскольку она потребляет память и вам не нужно делать это, лучше идея заключается в создании статического поля в каждом фрагменте и сохраните последнюю позицию в этом, а затем при создании нового фрагмента прокрутите до этой позиции.

Смежные вопросы