好的,我在谷歌上搜索了好几次,所以我认为不仅对 Sherlock 进行描述,对 appcompat 也进行描述会很好:
使用 appCompat 的操作栏高度
与@Anthony 描述非常相似,您可以使用以下代码找到它(我刚刚更改了资源 ID):
TypedValue tv = new TypedValue();
if (getActivity().getTheme().resolveAttribute(R.attr.actionBarSize, tv, true))
{
int actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
}
预三明治问题
我需要操作栏高度,因为在 ICE_CREAM_SANDWITCH 之前的设备上,我的视图与操作栏重叠。我尝试设置 android:layout_marginTop="?android:attr/actionBarSize", android:layout_marginTop="?attr/actionBarSize",将重叠设置为视图/操作栏,甚至使用自定义主题固定操作栏高度,但没有任何效果。这就是它的样子:
不幸的是,我发现使用上述方法我只能得到一半的高度(我假设选项栏没有到位)所以要完全解决这个问题,我需要将操作栏高度加倍,一切看起来都很好:
如果有人知道更好的解决方案(比将 actionBarHeight 加倍),我会很高兴告诉我,因为我来自 iOS 开发,并且我发现大多数 Android 视图的东西都非常令人困惑 :)
问候,
历史