Android 如何将方向更改为片段中的横向,但在返回活动时从传感器读取?

Android 如何将方向更改为片段中的横向,但在返回活动时从传感器读取?,android,android-fragments,android-orientation,Android,Android Fragments,Android Orientation,我从“活动”开始一个片段,此时我希望方向更改为landascape,但一旦应用程序返回到“活动”,我希望方向取决于传感器。到目前为止,我在片段中是这样做的: getActivity().setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 但是当我回到活动时,屏幕仍然是横向的,但是当我回到活动时,我希望屏幕方向取决于传感器。最好的方法是在返回活动的地方使用此代码。因为它会将方向转

我从“活动”开始一个片段,此时我希望方向更改为landascape,但一旦应用程序返回到“活动”,我希望方向取决于传感器。到目前为止,我在片段中是这样做的:

getActivity().setRequestedOrientation(
                ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

但是当我回到活动时,屏幕仍然是横向的,但是当我回到活动时,我希望屏幕方向取决于传感器。

最好的方法是在返回活动的地方使用此代码。因为它会将方向转换为用户为其设备设置的方向

yourActivityReference.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
如果你不想使用这个,那么你可以使用

yourActivityReference.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

实际上,您在
片段中所做的是设置包含它的
活动的
方向<代码>获取活动()…
。因此,一旦片段从活动中分离,您需要做的是重置活动的方向。例如,您可以覆盖片段的
ondeach()
,并调用:

getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

在那里。或者您可以尝试覆盖片段中的各种方法,看看哪种方法最适合您。

这两者之间有什么区别?我发现文档有点模糊。