2015-01-03 65 views
-2

我想在加載片段中的webview時鎖定屏幕方向。 我在一項活動中做了類似的事情,工作得很好。然而,當我在一個片段中使用的相同的代碼,我得到在eclipse IDE韋林氏說方法setRequestedOrientation是未定義的類型MyWebViewFragmentAndroid - 如何在運行時鎖定屏幕片段

這裏是代碼

public class MyWebViewFragment extends Fragment { 

.............. 

     ............... 

     // lock screen before proceeding 
     int currentOrientation = getResources().getConfiguration().orientation; 
     if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) { 
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 
     } 
     else { 
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT); 
     } 

     ............ 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      // unlock screen 
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); 
     } 

之一的一部分eclipse建議的修正是創建一個setRequestedOrientation方法,但我相信應該有更好的方法。

在此先感謝

回答

0

我發現這裏的解決方案相關的問題:Check network connection in fragment

我的解決辦法是讓使用getActivity()

更新的代碼現在工作的活動:

public class MyWebViewFragment extends Fragment { 

.............. 

    ............... 

    // lock screen before proceeding 
    int currentOrientation = getResources().getConfiguration().orientation; 
    if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) { 
     getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 
    } 
    else { 
     getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT); 
    } 

    ............ 
    @Override 
    public void onPageFinished(WebView view, String url) { 
     // unlock screen 
     getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); 
    }