2017-01-23 5 views
0

저는 MainActivity입니다. 그 아래에 Fragment이 많이 있습니다. 내가 끝까지 뒤로 버튼을 클릭하면프래그먼트가 끝까지 돌아 오면 화면이 흰색이됩니다.

public void switchFragment(Fragment fragment) { 
    FragmentManager manager = getSupportFragmentManager(); 
    FragmentTransaction transaction = manager.beginTransaction(); 
    transaction.replace(R.id.mainFrame, fragment, null); 
    transaction.addToBackStack(null); 
    transaction.commit(); 
} 

내 문제는 FrameLayout 흰색 white screen

내가입니다 :

나는 반환 메커니즘 기능이 같은 transaction.addToBackStack(null);

설정 추가하려고 시도 함

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) {  
     if (mainFrame==null) 
      return super.onKeyDown(keyCode, event); 
    } 
} 

작동하지 않습니다. Fragment을 끝까지 호출하면이 흰색 화면이 표시되지 않도록하려면 어떻게해야합니까? 어떤 도움이라도 좋을 것입니다!

+0

xml 파일을 표시하십시오. – scienticious

+0

해결책을 찾았습니다. 감사합니다. –

답변

1

귀하가 궁금한 점은 Fragment 세트가 하나씩 차례로 시작되며 뒤로 버튼을 누르면 차례로 사라지는 것입니다. 첫 번째 Fragment이 도달하고 다시 버튼을 클릭하면 흰색 화면이 표시됩니다.

내가 맞으면 처음 Fragment에 도달했는지 추적하고 활동을 마쳐야 할 수도 있습니다.

MainActivityonBackPressed 함수를 구현하십시오. 이런 일을 고려해보십시오.

@Override 
public void onBackPressed() { 
    if (getSupportFragmentManager().getBackStackEntryCount() > 0) 
     getSupportFragmentManager().popBackStack(); 
    else 
     finish(); // Finish the activity 
} 
+0

예, 올바른 답변을 주셔서 감사합니다. 그러나 첫 번째 조각이 –

+0

에 도달했을 때 여전히 흰색 화면을 보여줍니다. 내 의견에서 길을 찾았을 때, 이렇게 변합니다. if (getSupportFragmentManager(). getBackStackEntryCount() == 1) { finish(); } ', 나는 그것이 올바른 해결책인지 모르겠지만 지금 화이트 스크린 문제를 피할 수 있습니다. –

0

내가 ReazMushed의 제안 @ 데리고 같이 변경 :

@Override 
public void onBackPressed() { 
    if (getSupportFragmentManager().getBackStackEntryCount() ==1) { 
     finish(); 
    } 
} 

그리고 흰색 화면 문제가 사라 졌어요!

+0

그걸 알면 다행이야! –

+0

확실, 감사합니다. –

관련 문제