обработка ориентации экрана Android для счетчика - PullRequest
5 голосов
/ 12 января 2012

У меня есть активность, в которой есть счетчик.Так как для портретного и ландшафтного режима у меня разное расположение, поэтому я меняю расположение в onConfigurationChanged метод

@Override
    public void onConfigurationChanged(Configuration conf) {
        super.onConfigurationChanged(conf);
        setContentView(R.layout.layout);
        initUI();
    } 

, но проблема в том, что когда я меняю ориентацию, мой счетчик воссоздается, поэтому, если счетчик открыт в портретном режимеон приближается в ландшафтном режиме. Мое требование: если оно открыто в любом режиме, оно должно быть открыто после изменения ориентации. Можете ли вы дать мне знать, как справиться с этой ситуацией.

Ответы [ 3 ]

0 голосов
/ 12 января 2012

Чтобы остановить воссоздание вашего Spinner, вы можете добавить это в свой файл манифеста

<activity android:name=".Activity_name"
          android:configChanges="orientation|keyboardHidden">

Но добавив это, ваш макет не будет изменяться автоматически при повороте устройства, поэтому вам придется управлять этим вручную, как это,

@Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
            setContentView(R.layout.login_landscape);
        }
        else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
            setContentView(R.layout.login);         
        }
    }

Для получения дополнительной информации вы можете проверить мой ответ here.

0 голосов
/ 12 января 2012

После изменения ориентации вызывается метод уничтожения, и ваша деятельность воссоздается заново. Чтобы избежать вызова метода destroy, вам нужно добавить приведенные ниже коды в файл манифеста. Но в этом случае можно использовать только один макет, если вы хотите перенести содержимое, вам нужно сделать это динамически.

android:configChanges="orientation|keyboardHidden"
0 голосов
/ 12 января 2012

попробуйте метод executeClick () счетчика

...