2012-11-08 2 views
0

Мое приложение немного сбивается после использования убийцы задачи, потому что, по-видимому, вид удален, заставляя getView() возвращать null. Как я могу заставить фрагмент заново создать его представление, если оно окажется нулевым?Принудительный вызов onCreateView на фрагменте

+0

Весь процесс пропал после использования убийцы задачи. У вас есть еще одна проблема. – CommonsWare

+0

My getView() возвращает NoSaveStateFrameLayout после завершения задачи. Есть идеи? –

+0

Это совершенно нормально. AFAIK: http://stackoverflow.com/a/9440816/115145 – CommonsWare

ответ

1

Вы можете использовать метод newInstance, чтобы получить фрагмент как статический.

public static ProfileMainView newInstance(int sectionNumber) { 
     Fragment fragment = new YourFragmentView(); 
     Bundle args = new Bundle(); 
     args.putInt(ARG_SECTION_NUMBER, sectionNumber); 
     fragment.setArguments(args); 
     return fragment; 
    } 

, а затем создайте свое собственное представление таким образом. вам нужно проверить, является ли ваше представление нулевым или нет. Если это значение равно null, сделайте вид еще раз. Если это не так, просто используйте его. Надеюсь, это будет полезно для вас.

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     if(view == null){ 
      // Make your view here by inflater or whatever 
     } 
     return view; 
    } 
Смежные вопросы