我的AppBarLayout
持有Toolbar
和TabLayout
。锚定视图时,height设置为0 setLayoutParams(0)
。在另一个状态,视图已折叠,我需要恢复appbar高度。我试过setLayoutParams(heightDp)
其中
float heightDp = getResources().getDisplayMetrics().heightPixels / 6;
但身高不准确。
private void setLayoutParams(int paramsHeight) {
CoordinatorLayout.LayoutParams lsp = (CoordinatorLayout.LayoutParams) mAppBarLayout.getLayoutParams();
lsp.height = paramsHeight;
mAppBarLayout.setLayoutParams(lsp);
}
如何以编程方式确定精确的AppBar
高度。
答案 0 :(得分:0)
你应该使用TypedArray从默认资源中获取它:
int mActionBarSize;
TypedArray attrs= getContext().getTheme().obtainStyledAttributes(new int[] { android.R.attr.actionBarSize });
mActionBarSize = (int) attrs.getDimension(0, 0);
您必须回收TypedArray
attrs.recycle();
这样您就可以根据屏幕获得值。