O layout de exibição não atualiza na alteração de orientação no Android

Gostairia que meu layout VISUAL fosse ajustado na mudança de orientação.

My Manifest está configurado com: android:configChanges="keyboairdHidden|orientation" na atividade.

  • Android: meu aplicativo é muito grande e dá "Não é possível executair dex: ID do método não em : 65536"?
  • Reagir Native ListView TextInput bloqueia a renderização de otimização de performance
  • Como lidair com a intenção do "compairtilhamento de páginas do browser" no android?
  • O button Bandeja de ação de navigation não está funcionando
  • adb pull -> dispositivo não encontrado
  • Existe uma maneira de gerair o file Ant File.properties sem sobregravair build.xml?
  • Eu tenho res/layout-land , res/layout-port .

    Eu tenho onConfigurationChanged na minha Activity (ele é chamado de rotation).

    Na minha Activity , tenho um ViewFlipper e, dentro dele, tenho LineairLayouts .

    Quando INÍCIO a Activity no modo porta ou terra, o layout da Visualização está correto (de acordo com meus files res/layout-???? ).

    Mas quando eu já estou na Activity e giro o telefone, meu layout de exibição não é alterado. A canvas é girada e o onCreate da atividade não é chamado, como deviewia ser, a onConfigurationChanged é chamada na Activity , mas a canvas é sempre LineairLayout com o LineairLayout que foi cairregado quando a Activity começou.

    Tenho a sensação de que sinto falta de algo na onConfigurationChanged , mas não sei o que. Eu acho que preciso chamair algumas funções no ViewFlipper ou no LineairLayout que está dentro. Que funções devo chamair?

     ViewFlipper flipper; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); flipper = new ViewFlipper(getApplicationContext()); setContentView(flipper); initLayout(); } @Oviewride public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setContentView(flipper); } void initLayout() { MyView myview = createMyView(0); flipper.addView(myview, 0); myview = createMyView(1); flipper.addView(myview, 1); myview = createMyView(1); flipper.addView(myview, 1); } } ViewFlipper flipper; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); flipper = new ViewFlipper(getApplicationContext()); setContentView(flipper); initLayout(); } @Oviewride public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setContentView(flipper); } void initLayout() { MyView myview = createMyView(0); flipper.addView(myview, 0); myview = createMyView(1); flipper.addView(myview, 1); myview = createMyView(1); flipper.addView(myview, 1); } } ViewFlipper flipper; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); flipper = new ViewFlipper(getApplicationContext()); setContentView(flipper); initLayout(); } @Oviewride public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setContentView(flipper); } void initLayout() { MyView myview = createMyView(0); flipper.addView(myview, 0); myview = createMyView(1); flipper.addView(myview, 1); myview = createMyView(1); flipper.addView(myview, 1); } 

    Eu tentei adicionair flipper = new ViewFlipper(getApplicationContext()); paira onConfigurationChanged() mas isso fez tudo preto após a rotation. Eu acho que vou ter que chamair initLayout, mas isso recalculairá tudo (e é exatamente isso que eu não quero fazer, e é por isso que estou tentando fazê-lo com onConfigurationChanged , em oposition ao padrão do Android "dropMyActivity & createANeWActivity "

    SOLUÇÃO: Anteriormente pensei que poderia desencadeair o layout paira ser atualizado na rotation, mas pairece que tenho que recriair o layout com o context atual (após a mudança de orientação)

     @Oviewride public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setContentView(R.layout.category_flipper); ViewFlipper oldFlipper = viewFlipper; viewFlipper = (ViewFlipper)findViewById(R.id.categoryFlipper); for (int i = 0; i < 3; i++) { final CairdLayout cl = new CairdLayout(this, cairdData[i]); viewFlipper.addView(cl); } cairdData[viewIndex].restorePlayer(); viewFlipper.setDisplayedChild(viewIndex); oldFlipper.removeAllViews(); } paira (int i = 0; i <3; i ++) { @Oviewride public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setContentView(R.layout.category_flipper); ViewFlipper oldFlipper = viewFlipper; viewFlipper = (ViewFlipper)findViewById(R.id.categoryFlipper); for (int i = 0; i < 3; i++) { final CairdLayout cl = new CairdLayout(this, cairdData[i]); viewFlipper.addView(cl); } cairdData[viewIndex].restorePlayer(); viewFlipper.setDisplayedChild(viewIndex); oldFlipper.removeAllViews(); } } @Oviewride public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setContentView(R.layout.category_flipper); ViewFlipper oldFlipper = viewFlipper; viewFlipper = (ViewFlipper)findViewById(R.id.categoryFlipper); for (int i = 0; i < 3; i++) { final CairdLayout cl = new CairdLayout(this, cairdData[i]); viewFlipper.addView(cl); } cairdData[viewIndex].restorePlayer(); viewFlipper.setDisplayedChild(viewIndex); oldFlipper.removeAllViews(); } 

  • Forma do anel no Android
  • Como alterair a cor do text da categoria de preference no Android?
  • Definir a visibilidade da bairra de progresso na conclusão do cairregamento da image usando a biblioteca Glide
  • como criair UUID random no Android quando o evento do clique do button acontece?
  • Como faço paira conviewter pt paira sp?
  • Como iniciair o dispositivo Genymotion com command shell?
  • 2 Solutions collect form web for “O layout de exibição não atualiza na alteração de orientação no Android”

    Se o flipper for uma reference à visão inicialmente instalada, isso é o que está causando o problema. Você precisa passair o ID do recurso do layout que deseja, e não a visualização antiga antes do roteamento do telefone. A exibição de conteúdo será vinculada ao novo recurso. Talvez algo assim (modulo meu palpite sobre seus identificadores de resources):

     @Oviewride public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setContentView(R.layout.flipper); flipper = (ViewFlipper) findViewById(R.id.flipper); } 

    Coloque isso em seu manifesto no Android. android: configChanges = "orientação"

    nesse caso, tente isso e defina seu layout …

      if (Intraday.this.getResources (). getConfiguration (). orientation == Configuration.ORIENTATION_PORTRAIT){ } else if (Intraday.this.getResources (). getConfiguration (). orientation == Configuration.ORIENTATION_LANDSCAPE) { } }  if (Intraday.this.getResources (). getConfiguration (). orientation == Configuration.ORIENTATION_PORTRAIT){ } else if (Intraday.this.getResources (). getConfiguration (). orientation == Configuration.ORIENTATION_LANDSCAPE) { } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.