0

我的主要活动是

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_incipient);
    FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
    TopClipsFragment topClipsFragment = TopClipsFragment.newInstance();
    MyClipsFragment myClipsFragment= MyClipsFragment.newInstance();
    fragmentTransaction.add(R.id.frame_container, myClipsFragment,"My");
    fragmentTransaction.add(R.id.frame_container, topClipsFragment, "Top");
    fragmentTransaction.commit();
}

和一个布局文件:panel.xmlas

<android.support.v4.widget.SlidingPaneLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/voz_action_bar" >
</android.support.v4.widget.SlidingPaneLayout>

所以我在这里要做的是在 Activity 的 onCreate 方法中的 SlidingPaneLayout 中添加两个片段。当我启动我的应用程序时,这个东西工作正常。但是当设备方向改变时,我得到了这个异常

E/SlidingPaneLayout(2192): onMeasure: 不支持超过两个子视图

在这种情况下如何处理方向变化

4

1 回答 1

0

我认为当您切换方向并且您尝试将更多子项添加到 SlidingPaneLayout 时,会调用您的 onCreate 方法。根据您的需要,您可能会在切换方向时阻止调用 onCreate,方法是在清单中添加以下内容:

android:configChanges="orientation"

在活动块内。如果您确实希望调用 onCreate(也许您想更改正在使用的布局),那么您应该做不同的事情。

于 2014-05-13T14:38:23.977 回答