2017-09-29 4 views
0

Android에서 이동 드로어를 사용하여 다른 조각을 선택합니다. 조각 A에는 사용자 인터페이스가 있습니다. 조각 B에는 블루투스 스캔이 있습니다.Android 파편에서 마지막 상태로 돌아 가기

사용자가, 조각 B로 이동 스캔을 수행하고 장치에 연결, 장치

과의 연결이 다시 조각 B에 돌아 오는 조각 A.

로 이동합니다 보여준다는 새로운으로 화면을 대체하고 연결되지 않음

다른 조각으로 전환하기 전에 마지막 상태를 기억하는 방법이 있습니까? 아니면 이것은 활동으로서 더 좋은가?

전에 또는 기본적인 질문이 있으면 부탁드립니다. 처음으로 Fragments를 사용하고 그 (것)들의 걸림 새를 얻기.

답변

0

을 상실하지 않는 것이 좋습니다. 탐색 서랍의 코드에서

 settingsfragment = new SettingsFragment(); 
     FragmentManager settingsManager = getSupportFragmentManager(); 
     settingsManager.beginTransaction().replace(
       R.id.fragment_area, 
       settingsfragment, 
       settingsfragment.getTag() 
     ).commit(); 

그러나 첫 번째 코드 줄에서 매번 새 단편을 생성합니다.

가 다음

  if (settingsfragment == null) 
      settingsfragment = new SettingsFragment(); 

     FragmentManager settingsManager = getSupportFragmentManager(); 
     settingsManager.beginTransaction().replace(
       R.id.fragment_area, 
       settingsfragment, 
       "FRAG_TAG" 
     ).commit(); 

로 변경됩니다 경우이 레이아웃이 이미 생성되어 있는지 확인하고에 전화했을 때 그것을 다시 배치합니다.

다른 의견 및 제안에 감사드립니다.

0

이 그래, 당신이 SaveInstaceState 및 OnRestoreState를 사용하여 수행 할 수 있습니다 사전에

덕분에, 당신은 또한 가기 backstack 관리자가 필요하지만, 먼저 예로서 나에게 코드를 제공

+0

답장이 지연되어 죄송합니다. saveInstanceState에 대해 알고 있습니다. 문제는 탐색 창을 사용하여 조각 사이를 전환하면 onSaveInstanceState가 호출되지 않는다는 것입니다. 내가 보통 – Adey22

0

하나의 간단한 해결책이다 : 때 addint

Fragment f = new FragmentB(); 
fragTransaction.addToBackstack(null); 
fragTransaction.replace(layout, f); 
fragTransaction.commit(); 

기본값 인 onReturnPressed는 스택을 조각으로 다시 팝합니다. 당신을 제어하려면

당신이 항상 조각의 새로운 인스턴스를 생성하는처럼 당신이 클릭 "B에 단편 A를 전환 할"때 보는 것, 나를 위해

getFragmentManager().popStackBack(); 
+0

안녕하세요 마르코스 안녕하세요 뭔가 잘못된 일을하지 않는 한, 그래,하지만 네가 B를 선택하면 탐색 서랍에서 작동 했어 A를 선택하면 B로 돌아갈 때 그것도 내가 새로운 레이아웃을 알기를 원할 때 여전히 새로운 레이아웃으로 돌아 간다. 레이아웃 – Adey22

0

를 호출합니다.

난 당신이 더 나은 조각을 처리하는 대신 ViewPager componente를 사용하고 문제가 발견 상태

+0

ViewPager에서 탐색 창을 사용할 수 있습니까? – Adey22

+0

ViewPager는 FragmentPagerAdapter를 사용하여 단편을 처리하기위한 것일뿐입니다. –

+0

Nav Drawer Itens에서 조각을 바꿀 수 있습니다. 예를 들어 vpPager.setCurrentItem (1)을 사용하여 클릭합니다. 이 링크는 https : // guides를 참조하십시오.codepath.com/android/ViewPager-with-FragmentPagerAdapter#setup-fragmentpageradapter –