【问题标题】:How to change orientation to portrait in Fragment Class - Android如何在片段类中将方向更改为纵向 - Android
【发布时间】:2014-11-13 21:41:28
【问题描述】:

我的应用程序处于横向模式..我正在尝试更改纵向视图中的片段..

使用下面的代码从横向旋转到纵向..

getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

但是片段“onCreate”和“onCreateView”调用了两次..

任何人都可以建议在片段类中实现人像视图吗?或者建议如何避免两次调用 onCreateView ?

【问题讨论】:

  • 你把上面的代码放在哪里了?
  • 看看 setRatainInstance(boolean) 方法
  • 请向我们展示更多代码,特别是您的片段或类。
  • @Eenvincible 在 onCreateView 我放置了代码 sn-p ..
  • @janpan 这是我的片段:pastebin.com/JiuubGju

标签: android android-activity android-fragments


【解决方案1】:

在您的活动应添加的清单文件中,

"android:configChanges="keyboardHidden|orientation|screenSize"

例如,

<activity
    android:name=".MainActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:label="@string/app_name"
    android:screenOrientation="landscape" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

具体来说,您应该在 Android 清单文件中添加“screenSize”。这样您的 Fragment "onCreate" 和 "onCreateView" 就不会被调用两次。

【讨论】:

    【解决方案2】:

    覆盖 setRetainInstance。这应该可以解决您的问题

    【讨论】:

    • 你能把截取的代码贴上来检查一下吗?因为我已经在 onCreate 方法中设置了 RetainInstance(true) ..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多