2015-02-02 2 views
0

이것은 정말 간단해야하지만 이전에는 프래그먼트로 작업 한 적이 없으며 여기에서 길을 잃어 버렸습니다.안드로이드 프래그먼트는 언제든지 다시 돌아온 후에 새로 고칩니다.

나는 fragmets에서 엄청난 양의 것을 찾았지만 내 문제에 대한 답을 찾을 수 없습니다.

내 주요 활동에는 기본적으로 LinearLayout이라는 5 개의 버튼이있는 하위 메뉴가 있습니다.

목록이 5 개 있습니다.

버튼을 누르면 5 개의 조각 중 하나를 보려고합니다.

조각을 FragmentTransaction.replace()와 함께 추가하면 조각이 매번 재생성됩니다. 모든 것이 새로 고침되고 이것은 내가 원하는 것이 아닙니다. 뒤로 버튼을 눌러 프래그먼트로 돌아 가면 뷰도 새로 고쳐집니다.

조각을 새로 고치지 않는 방법을 알 수 없었습니다. hide/show를 사용하여 시도했지만 어떤 시점에서 백 스택 트랙을 잃어 버렸으므로 뒤로 버튼 동작을 취소 할 수 없습니다.

도움을 주시면 감사하겠습니다. 감사.

답변

0

나는 FragmentTransaction.replace()를 의미한다고 생각합니다. 질문 편집을 고려하십시오.

어쨌든 조각을 변경하면보기가 항상 다시 만들어집니다. onSavedInstanceState()를 구현 한 다음 onCreateView()에서 정보를 검색하여 번들에 필요한 정보를 유지하는 것이 좋습니다.

+0

감사합니다. 그러나 이것은 나에게는 좋지 않습니다. 단편에 2 개의 회 전자가 있기 때문에 조각의 레크리에이션을 처리하는 것은 많은 작업입니다. 프래그먼트를 다시 만들고 마지막으로 선택한 항목을 설정하면 spiners의 onItemSelected가 실행되어 작업을 시작합니다. 또한 조각을 다시 만들 때마다 onSaveInstanceState()가 시작되지 않으므로 정적 멤버에 정보를 저장합니다. 내가 피하려고했던 상황을 처리하기 위해 불리언이 필요할 것이지만 다른 방법은없는 것 같습니다. – Lev

관련 문제