gpt4 book ai didi

android - 在android中获取操作栏高度

转载 作者:太空狗 更新时间:2023-10-29 14:00:45 24 4
gpt4 key购买 nike

我想在我的 oncreate 方法中获取操作栏高度,而不是在像这样创建 View 之后
第一种方式

 content.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
Log.d(tag + " onCreate", "getSupportActionBar().getHeight()=" + getSupportActionBar().getHeight());
return true;
}
});

为此,我使用了这段代码
第二种方式

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

但我的问题是,当我使用第一种方式时,操作栏高度为 56,而当我使用第二种方式时,操作栏高度为 48。
我认为第一种方法是正确答案,但我不想等到 View 创建。
谁能帮我解决这个问题?
“我使用 htc desire 200 进行密度 mdpi 测试”

最佳答案

这两个方法之间可以有两个不同的高度,因为它们返回两个不同的值。第一个方法返回实际的 ActionBar 高度。第二个方法返回 android 属性 actionBarSize 的值。

获得真正的 ActionBar 高度的正确方法是第一个,但如果你说你不想等待 View 的创建,如果你正在使用 Toolbar 你可以通过 xml 将他的高度设置为 ?android:attr/actionBarSize 并在任何你想获得以像素为单位的高度的地方使用第二种方法。

关于android - 在android中获取操作栏高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35686134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com