Как определить ориентацию экрана в потоке мастер / детали в Android

Я использую поток master/detail android и пытаюсь определить ориентацию экрана, чтобы уменьшить размер мастер-части в портретном режиме, но у меня возникли некоторые трудности, я написал этот метод:

@Override
    public void onConfigurationChanged(Configuration newConfig) {
        // TODO Auto-generated method stub
        super.onConfigurationChanged(newConfig);

        if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){

            setContentView(R.layout.activity_analyse_list);
            LinearLayout layout = (LinearLayout) findViewById(R.id.mastermenu);

            layout.setLayoutParams(new LinearLayout.LayoutParams(0, LayoutParams.MATCH_PARENT, (float) 0.5));
        }
    }

И я положил это в ListActivity что является первым и основным действием, но ничего не происходит, когда я переворачиваю планшет, я пытался использовать Log.d чтобы увидеть, если onConfigurationChanged вызывается на ротацию, но ничего на логкат.

1 ответ

Решение

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

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

Другие вопросы по тегам