我的活动方向固定为横向。我在这个活动中通过 GLsurface 视图膨胀了 3 个不同的布局,根据用户操作,一次只能看到其中一个。这种布局之一是视频视图。我想支持视频的垂直和水平播放。但是对于所有其他视图,它需要固定为横向。我怎样才能做到这一点。
感谢您的时间和帮助
我的活动方向固定为横向。我在这个活动中通过 GLsurface 视图膨胀了 3 个不同的布局,根据用户操作,一次只能看到其中一个。这种布局之一是视频视图。我想支持视频的垂直和水平播放。但是对于所有其他视图,它需要固定为横向。我怎样才能做到这一点。
感谢您的时间和帮助
在您的 AndroidManifest.xml 活动声明中删除
android:orientation
标记并添加
android:configChanges="keyboardHidden|orientation"
现在在您的活动中覆盖以下功能
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig); //To change body of overridden methods use File | Settings | File Templates.
if (!isVideoViewSet)//change orientation to portrait other Views, skip for Video View
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
在这里使用一些标志(上面代码片段中的isVideoViewSet),您可以检查设置了哪个视图并相应地设置活动方向。
首先,我建议不要在同一个活动中夸大三个不同的视图,而是建议在一个基本活动之外使用 3 个不同的活动。
编辑:删除 LinearLayout 代码,因为这将是多余的。您可以更改方向并将它们固定在事件上以打开各个视图。
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);