2013-09-03 2 views
0

У меня есть два вида деятельности. Приложение запускается, я запускаю второе действие. Я вращаю устройство. Я возвращаюсь к первому мероприятию. Во время анимации появляется черная область. Это способ, которым я устанавливаюconfigChanges вопрос при вращении устройства между двумя действиями [+ VIDEO]

android:configChanges="keyboardHidden|orientation|screenSize" 

в моих действиях. Если я этого не сделаю, все будет хорошо.

Как исправить это?

Я знаю, что я должен реализовать onConfigurationChanged

Вот код:

public class MainActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     initUI(); 
    } 
    @Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     initUI(); 
    } 

    private void initUI() 
    { 
     setContentView(R.layout.activity_main); 

     final Button button = (Button) findViewById(R.id.button1); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
      Intent subActivity = new Intent(MainActivity.this,SecondActivity.class); 
       startActivity(subActivity); 
      } 
     }); 
    } 
} 

и второй:

public class SecondActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.temp); 
    } 

} 

Вот видео того, что происходит: http://www.youtube.com/watch?v=8NLNkE1eOK8

Это не, конечно, проект, над которым я работаю, но я t, специально созданный, чтобы понять эту проблему.

Спасибо.

ответ

1

Вы перехватываете изменения конфигурации, теперь вам нужно что-то с этим делать.

Внутри initUI() вы должны определить ваше новое соотношение сторон и местоположение. Простой If-Else , который устанавливает размеры и LayoutParams, на основе которого пользователь поворачивал экран. Вместо этого вы просто вызываете Activity2 с тем же макетом activity_main. Вы можете легко установитьContentView на activity_main_port или программно установить размеры, макеты и т. Д.

Смежные вопросы