【问题标题】:android : inflated view with a different orientation than the activityandroid:与活动方向不同的膨胀视图
【发布时间】:2013-04-17 07:00:36
【问题描述】:

我的活动方向固定为横向。我在这个活动中通过 GLsurface 视图膨胀了 3 个不同的布局,根据用户操作,一次只能看到其中一个。这种布局之一是视频视图。我想支持视频的垂直和水平播放。但是对于所有其他视图,它需要固定为横向。我怎样才能做到这一点。

感谢您的时间和帮助

【问题讨论】:

    标签: android orientation layout-inflater


    【解决方案1】:

    在你的 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)你可以检查设置了哪个视图并相应地设置活动方向。

    【讨论】:

      【解决方案2】:

      首先,我建议在一个基本活动之外使用 3 个不同的活动,而不是在同一个活动中夸大三个不同的视图。

      编辑:删除 LinearLayout 代码,因为这将是多余的。您可以更改方向并将它们固定在事件上以打开各个视图。

          setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
      

      【讨论】:

      • 我不能使用不同的活动来满足我的要求。 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);解决了我的问题
      • 使用 ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED 来支持两者
      猜你喜欢
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多