在向SlidingPaneLayout添加片段时处理屏幕方向更改

时间:2014-03-17 18:56:46

标签: android android-fragments slidingpanelayout

我的主要活动是

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.xml

<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:有两个以上的子视图   不支持

在这种情况下如何处理方向更改

1 个答案:

答案 0 :(得分:0)

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

android:configChanges="orientation"

在活动块内。如果你想要调用onCreate(也许你想改变你正在使用的布局),那么你应该做的不同。