如何以configChanges="orientation|keyboard|screenSize"编程方式更改 Android 配置?
我的意思是我们可以在运行时更改此选项吗?
我正在创建一个杂志应用程序,它使用 aViewPager并滚动不同的WebViews。大多数页面是纵向的,但有些页面可以看到横向的。
为了解决这个问题,我在持有时使用了两种Activity方法ViewPager:
public void allowOrientationChanges() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
public void enforcePortrait() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
Run Code Online (Sandbox Code Playgroud)
这样,我们确保所有只需要纵向的页面保持纵向(调用getActivity().enforcePortrait()),而具有纵向/横向视图的页面经历整个重新启动过程(调用getActivity().allowOrientationChanges())。
我们想在杂志的某些页面上添加视频。不幸的是,HTML5 视频标签无法正常工作,因此我们VideoView在布局中添加了 。现在要添加的功能是:
VideoView我一直在尝试这样做,我发现的唯一方法是更改方法中onConfigurationChanged()的大小Activity并通知fragment配置已更改。这样做的问题是添加android:configChanges="orientation|keyboardHidden"了Activity“禁止”重新创建视图的意愿。
我想到的两种可能的解决方案:
android:configChanges并根据页面,但我找不到该调用是否存在。onConfigurationChanged()方法。我不知道如何强制重新创建fragment.有任何想法吗?