我试图使用this tutorial以图像模式实现灵活空间。在Android中以编程方式更改AppBarLayout高度
一切工作正常。
请注意AppBarLayout的高度定义是192dp。
我想使屏幕的高度为1/3,以匹配this google example for the pattern here。
下面是活动的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并且不能动态设置)。
是不是应该这样?:float density = mParentActivity.getResources()。getDisplayMetrics()。density; float heightDp = mParentActivity.getResources()。getDisplayMetrics()。heightPixels/density; – David