【问题标题】:Set AppBarLayout size Programmatically on Android在 Android 上以编程方式设置 AppBarLayout 大小
【发布时间】:2017-08-04 07:34:34
【问题描述】:

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

【问题讨论】:

    标签: java android android-coordinatorlayout android-appbarlayout


    【解决方案1】:

    您应该使用 TypedArray 从默认资源中获取它:

    int mActionBarSize;
    TypedArray attrs= getContext().getTheme().obtainStyledAttributes(new int[] { android.R.attr.actionBarSize });
    mActionBarSize = (int) attrs.getDimension(0, 0);
    

    你必须回收 TypedArray

    attrs.recycle();
    

    这样你将根据你的屏幕获得价值。

    【讨论】:

      猜你喜欢
      • 2015-01-09
      • 2017-12-28
      • 2012-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 2013-12-23
      相关资源
      最近更新 更多