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 に 2 つのフラグメントを追加することです。アプリケーションを起動すると、これは正常に機能します。しかし、デバイスの向きが変更されると、この例外が発生します

E/SlidingPaneLayout(2192): onMeasure: 3 つ以上の子ビューはサポートされていません

この場合、向きの変更をどのように処理できますか

4

1 に答える 1

0

向きを切り替えて、SlidingPaneLayout に子を追加しようとすると、onCreate メソッドが呼び出されると思います。必要に応じて、マニフェストにこれを追加することにより、向きを切り替えるときに onCreate の呼び出しをブロックできます。

android:configChanges="orientation"

アクティビティブロック内。onCreate を呼び出したい場合 (使用しているレイアウトを変更したい場合)、別の方法で行う必要があります。

于 2014-05-13T14:38:23.977 に答える