Alterar a altura do AppBarLayout programaticamente no Android

Estou tentando implementar o Espaço flexível com padrão de imagem, usandoeste tutorial.

Tudo funciona bem.

Observe a definição de altura do AppBarLayout, que é 192dp.

Gostaria de fazer a altura 1/3 da tela, para correspondereste exemplo do google para o padrão aqui.

Aqui está o código no onCreate da atividade (o xml de layout é exatamente o mesmo que no tutorial):

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)));

Mas, por alguma razão, o resultado não é o que estou esperando. Não consigo ver a barra de aplicativos com esse código. (sem o código, a altura é exibida conforme o esperado, mas é do XML e não pode ser definida dinamicamente).

questionAnswers(2)

yourAnswerToTheQuestion