2016-05-16 5 views
2

フラグメントの向きの変更に問題があり、内部にProfileFragmentをロードしているDrawerActivityがあります。左側のナビゲーションバーのReviewボタンをクリックして、同じコンテナにReviewFramentをロードします。 ReviewFragementでは、現在のProfileFrament(バックページ)の表示方向を変更すると、そのページ全体が更新されます。フラグメントレイアウトの方向管理

アプリからの不正行為を避けるにはどうすればよいですか?

+0

あなたのDrawerActivityコードとレイアウトコードを共有してください.... – Nowshad

答えて

1

最後に、その読み込みビューに基づいてフラグメントのステータスを確認するためのフラグを配置して作業しました。

マニフェストの設定変更を試みましたが、レイアウトビューを変更しないようにしました(方向ごとにデザインを変更したい場合)。

0

はちょうどそう、あなたの活動のタグは次のようになりますあなたのDrawerActivitymanifest内のファイル

android:configChanges="orientation|screenSize" 

に次の行を追加します。

<activity 
    android:name="packagename.DrawerActivity" 
    android:configChanges="orientation|screenSize" 
    android:label="@string/app_name" > 
</activity> 

ハッピーコーディング。

+0

しかし、画面の向きを変更すると、別のデザインレイアウトを読み込んでいます。 –

+0

ohh ...次に、 'DrawerActivity'の中で' onConfigurationChanged(); 'を使って、その中でいくつかのロジックを行うべきでしょう。 –

0

あなたのアクティビティがローテーション後に再作成され、フラグメントが破棄されるため、その動作が起こります。

このような状況を処理するには、アクティビティを親としてフラグメント化し、コンテナとして使用し、アクティビティにレイアウトを配置し、他のすべてのアクションをフラグメントで実行することをお勧めします。例えば

あなたの状況では、主な活動は、この

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 

のようなコンテナだけを含める必要があり、その後、プロファイルの使用ProfileFragmentのために、あなたの活動ののonCreateからこの

// this will prevent the fragments from recreating on rotate 
if (savedInstanceState == null){ 
     setSplashFragment(); 
     } else { 
      //Do Nothing 
     } 
のようなものが発売されます

とマニフェストの

<activity 
    android:name=".ParentActivity" 
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> 

を使用してインターフェイスを使用して、アクティビティにボタンクリック時にReviewFragementを起動するよう指示します。

これはすべて複雑に聞こえるかもしれませんが、あなたは迅速な解決策を探しているかもしれませんが、これは今後の競合を避けるための最良の方法です。

関連する問題