Изменение высоты AppBarLayout программно в Android

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

Все отлично работает

Обратите внимание на определение высоты AppBarLayout, которое составляет 192dp.

Я хотел бы сделать высоту 1/3 экрана, чтобы соответствоватьэтот пример Google для шаблона здесь.

Вот код в onCreate действия (XML-макет точно такой же, как в учебнике):

AppBarLayout appbar = (AppBarLayout)findViewById(R.id.appbar);
float density = getResources().getDisplayMetrics().density;
float heightDp = getResources().getDisplayMetrics().heightPixels / density;
appbar.setLayoutParams(new CoordinatorLayout.LayoutParams(LayoutParams.MATCH_PARENT, Math.round(heightDp / 3)));

Но по какой-то причине результат не тот, который я ожидаю. Я не вижу панель приложения вообще с этим кодом. (без кода высота отображается, как и ожидалось, но она из XML и не может быть установлена ​​динамически).

Ответы на вопрос(2)

Ваш ответ на вопрос