Study/Android

fragment의 웹브라우저 뒤로가기

Answer Choi 2015. 2. 12. 08:38
반응형



Fragment를 사용하여 webview를 만들게 되면 따로 뒤로가기를 구현해 주는 것이 좋습니다. 

 

왜냐하면 fragment안의 webview에서 뒤로가기버튼을 누르면 먹히지가 않기 때문이죠.

 

하지만 버튼을 따로 구현하지 않고도 백키가 동작하게 할 수 있습니다.

 

  1. @Override
  2. public void onBackPressed() {
  3.     if (webfragment.webview.canGoBack()) {          
  4.         try{
  5.         webfragment.webview.goBack();  //only webview back-key code
  6.         }catch(Exception e){
  7.              //back-key code of another fragment
  8.         }
  9.     }else {
  10.             // back-key code of another fragment
  11.         }

 

 

위의 코드는 메인 activity 안에있는 onBackPressed 입니다.

 

webview가 구현된 fragment안의 webview에 canGoBack 메소드를 쓰게되면 back key가 먹히게 됩니다.

 

try catch를 쓴 이유는 webview의 fragment가 실행이 된적이 없으면 webview가 초기화 되지않아 exception이

 

발생합니다. 그것을 방지하기 위해 쓴거예요. 

 

다른 fragment에서는 else로 구현된 저부분이 실행됩니다.

반응형