Android-如何在运行时将屏幕锁定在片段中
我试图在片段中加载webview时锁定屏幕方向。 我在一项活动中做过类似的事情,效果很好。然而,当我在片段中使用相同的代码时,我在EclipseIDE中得到警告,说类型MyWebViewFragment的方法setRequestedOrientation未定义 下面是代码的一部分Android-如何在运行时将屏幕锁定在片段中,android,android-fragments,Android,Android Fragments,我试图在片段中加载webview时锁定屏幕方向。 我在一项活动中做过类似的事情,效果很好。然而,当我在片段中使用相同的代码时,我在EclipseIDE中得到警告,说类型MyWebViewFragment的方法setRequestedOrientation未定义 下面是代码的一部分 public class MyWebViewFragment extends Fragment { .............. ............... // lock sc
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方法,但我认为应该有更好的方法
提前感谢我在这里发现了与解决方案相关的问题: 我的解决方案是使用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);
}