在Android上以编程方式设置AppBarLayout大小

时间:2017-08-04 07:34:35

标签: java android android-coordinatorlayout android-appbarlayout

我的AppBarLayout持有ToolbarTabLayout。锚定视图时,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高度。

1 个答案:

答案 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();

这样您就可以根据屏幕获得值。