0
FragmentTransactions 및 FragmentManager의 근본을 이해하는 데 도움이 필요합니다. IM은 NPE는 I가 활동을 다시 할 때마다 구성 변경 (화면 회전) 후에 발생하고, 스택 트레이스는 행에서 NPE를 인쇄 샘플 출력이FragmentManager getFragments null null
11-14 10:17:42.806: D/MainActivity(1825): Any pending : false
11-14 10:17:42.806: D/MainActivity(1825): Size : 3
같다
List<Fragment> fragments = getSupportFragmentManager().getFragments();
boolean pending = getSupportFragmentManager().executePendingTransactions();
Log.d(LOG_TAG, "Any pending : " + Boolean.toString(pending));
Log.d(LOG_TAG, "Size : " + Integer.toString(fragments.size()));
for(Fragment fragment : fragments){
if(fragment != null & fragment.isVisible()){
Log.d(LOG_TAG, "Fragment Tag : " + fragment.getTag());
}
}
호출하도록 Fragment가 null이기 때문에 아래에 있습니다.
if(fragment != null & fragment.isVisible()){
여기 내 혼란이 있습니다. 활동을 재현하기 전에 매니저에 두 개의 단편이 있습니다. 나는 세 번째 단편을 붙인 다음 그것을 제거하고 다시 두 단편이어야한다고 말합니다. 그러나 관리자는 목록에 3 개의 조각이 있다고 말합니다. 왜 이런거야? 나는 제거 된 조각이 onDestroy()를 통과하는 것을 볼 수있다. 관리자가 조각에 대한 참조를 null로 유지하고 있습니까?
당신이 목록에서 널 (null) 항목이 이유를 알고 있습니까? 나는 FragmentTransaction.remove()를 호출하면 프래그먼트에 대한 참조가 제거된다는 인상을 받았다. – Clocker
죄송합니다, 알 수 없습니다 :/ – WarrenFaith
충분합니다. 귀하의 답변 주셔서 감사합니다! – Clocker