изменить макет деятельности во время выполнения в Android - PullRequest
1 голос
/ 20 марта 2012

я разрабатываю одно приложение для Android, там мне нужно изменить макет активности во время выполнения

Я хочу знать о том, как изменить макет действия при смене режима просмотра с портретного на альбомный или визовый стих

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

Ответы [ 4 ]

2 голосов
/ 20 марта 2012

Лучше всего также иметь папку для альбомной ориентации, назовите ее как

layout-land

вы поместите еще один main.xml в эту папку, и Android Framework автоматически выберет этот макет для альбомной ориентации.

Больше информации здесь из руководства для Android для с поддержкой нескольких экранов

1 голос
/ 20 марта 2012

Код для определения изменения ориентации

 @Override
        public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
            if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
                SharedVariables.isScreenOrientPotrail=false;
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

            }
            else if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES){
                SharedVariables.isScreenOrientPotrail=true;
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

            }
        }
0 голосов
/ 20 марта 2012

Я вставляю код здесь .. попробуйте это ..

public void onConfigurationChanged(Configuration orient) 
    {
        super.onConfigurationChanged(orient);

        // Checks the orientation of the screen
        if (orient.orientation == Configuration.ORIENTATION_LANDSCAPE)
        {
                      //code here for LANDSCAPE..
        ));   

        }
        else if (orient.orientation == Configuration.ORIENTATION_PORTRAIT)
        {           
                      //code here for PORTRAIT ..   
            }               
    }

Метод CAll;

  @Override
public void onCreate(Bundle savedInstanceState) 
{
        onConfigurationChanged(getResources().getConfiguration());
    }
0 голосов
/ 20 марта 2012
LayoutInflater inflater = context.getLayoutInflater();

                View rowView = inflater.inflate(R.layout.your_dyanmic_layoutid, null, true);

добавить rowview в свой основной макет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...