【发布时间】:2013-04-17 07:00:36
【问题描述】:
我的活动方向固定为横向。我在这个活动中通过 GLsurface 视图膨胀了 3 个不同的布局,根据用户操作,一次只能看到其中一个。这种布局之一是视频视图。我想支持视频的垂直和水平播放。但是对于所有其他视图,它需要固定为横向。我怎样才能做到这一点。
感谢您的时间和帮助
【问题讨论】:
标签: android orientation layout-inflater
我的活动方向固定为横向。我在这个活动中通过 GLsurface 视图膨胀了 3 个不同的布局,根据用户操作,一次只能看到其中一个。这种布局之一是视频视图。我想支持视频的垂直和水平播放。但是对于所有其他视图,它需要固定为横向。我怎样才能做到这一点。
感谢您的时间和帮助
【问题讨论】:
标签: android orientation layout-inflater
在你的 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 in above code sn-p)你可以检查设置了哪个视图并相应地设置活动方向。
【讨论】:
首先,我建议在一个基本活动之外使用 3 个不同的活动,而不是在同一个活动中夸大三个不同的视图。
编辑:删除 LinearLayout 代码,因为这将是多余的。您可以更改方向并将它们固定在事件上以打开各个视图。
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
【讨论】: