2016-12-27 2 views
0

私は横長/縦長の画面が必要なアプリケーションを作成しています。私の問題は、画面が回転しているときに、この方法はロガーであっても動作しないため、撮影には苦労しています。同じ経験をお持ちの方?私は回転後のログで受信することは、私は、ユーザーが縦または横にあるときに別のXMLをロードしようとしている、ここで画面が回転しているときのログ、メソッドは機能しません

12-28 00:02:55.897 13039-13039/com.xxx.xxx D/ViewRootImpl: ViewPostImeInputStage processPointer 0 
12-28 00:02:55.927 13039-13039/com.xxx.xxx D/ViewRootImpl: ViewPostImeInputStage processPointer 1 

です。私はこの方法を使用しています。なぜなら、私は風景モードでは追加のコントロールがあり、ポートレートモードではこれらのコントロールは利用できないからです。だから私はbindNewControlsLoaded()これらのコントロールを初期化するメソッドを呼び出す必要があります。

@Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 

     if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
      setContentView(R.layout.activity_task_page_lan); 
      initCreate(); 
      //im calling this because some controls are newly added 
      bindNewControlsLoaded(); 
     } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
      setContentView(R.layout.activity_task_page); 
      initCreate(); 
     } 

    } 

initCreate方法は、これは一般的なコントロールをロードするために使用され、肖像画のための方法です。追加のコントロールが回転に私のマニフェストandroid:configChanges="orientation|screenSize"

+0

superConfigurationChanged内にnewConfigを含むログを追加してください。あなたの活動宣言を示してください。 –

答えて

0

デフォルトではアンドロイドの再作成アクティビティでbindNewControlsLoaded();

に呼ばれている間、あなたは全くちょうどresource qualifiersを使用onConfigurationChangedせずにそれを行うことができます。あなたの場合はactivity_task_page_lan.xmlをres/layout-land/folderに移動し、activity_task_page.xmlに名前を変更してください。

実際にコードでこのケースを処理し、アクティビティの再作成を防止する場合は、アクティビティ宣言にandroid:configChanges="orientation"を追加する必要があります。

+0

アンドロイド:configChanges = "orientation | screenSize"私はすでにマニフェストでこれを持っています。はい、それは私自身で処理しているので、私は風景モードでいくつかの追加のコントロールをロードしました。 – jhaypee

+0

なぜ、回転時にアクティビティを再作成し、onCreateの追加のコントロール用の条件付きロジックを作成したくないのですか? –

関連する問題