2014-04-01 34 views
0

我想要的是當設備旋轉,FragmentActivity仍然保持。anadroid - 我想要的是當設備旋轉,FragmentActivity仍然保持

在FragmentActivity中使用webview的Im。

我在清單中將android:configChanges =「orientation | keyboardHidden」添加到我的FragmentActivity中,當我旋轉設備時,應用程序停止。

這是下面的main.java代碼。

@Override 
    public void onConfigurationChanged(Configuration newConfig){  
      super.onConfigurationChanged(newConfig); 
    } 

這是下面的tab1.java。

public class Tab1 extends Fragment { 
     Context mContext; 

     WebView web ; 


     @Override 
     public View onCreateView(LayoutInflater inflater, 
       ViewGroup container, Bundle savedInstanceState) { 
       View mainView = (View) inflater.inflate(R.layout.activity_tab1, container, false); 
       web = (WebView) mainView.findViewById(R.id.webview1); 
       web.setWebViewClient(new WebClient()); 
       WebSettings set = web.getSettings(); 
       set.setJavaScriptEnabled(true); 
       web.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 

       web.loadUrl("http://google.com"); 
       //웹뷰에서 뒤로가기 
       web.setOnKeyListener(new OnKeyListener(){ 
        public boolean onKey(View v, int keyCode, KeyEvent event) { 
          if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) { 
           handler.sendEmptyMessage(1); 
           return true; 
          } 
          return false; 
        } 
       }); 
       return mainView; 
     } 
} 

我想在每次旋轉手機時都保持webview。 有任何建議嗎?

回答

0

要記住的東西,在旋轉應用程序將調用onCreate。所以它基本上是每次旋轉時重新創建你的應用程序。所以要解決這個問題。 (我認爲)你需要在savedInstanceState中保存你的應用程序的狀態,然後在旋轉之後,從那裏恢復你的狀態。

0

如果你在,你將處理方向改變的清單已經規定了,你不想去通過正規的生命週期,在配置上的變化做這樣的事情:

@Override 
public void onConfigurationChanged(Configuration newConfig){  
     super.onConfigurationChanged(null); 
} 

此外,如果你想要的是留住你的片段的情況下,你可以調用方法:

Fragment.setRetainInstance(true); 

其中按照谷歌文檔「控件(如從配置變化的片段實例是否可以通過活動的再創造保留)「。

問候!

+0

Fragment.setRetainInstance(true); – younglee

相關問題