我正在使用Actionbarsherlock,并且想在操作栏的正下方放置一个PopupWindow。使用showAtLocation()需要x和y偏移,因此理想情况下y偏移将是操作栏的高度。但是当我打电话

int abHeight = getSupportActionBar().getHeight();


它返回零。我正在使用SherlockFragmentActivity

以下是相关代码:

slidingLayout = inflater.inflate(R.layout.sliding_menu, null);
menuDrawer = MenuDrawer.attach(this, MenuDrawer.MENU_DRAG_CONTENT, Position.LEFT);
menuDrawer.setContentView(R.layout.activity_main);
menuDrawer.setMenuView(slidingLayout.findViewById(R.id.sliding_menu));

getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
int abHeight = getSupportActionBar().getHeight();


我四处张望,找不到类似的问题/答案,所以以前有人经历过吗?谢谢。

编辑:杰克的答案是正确的。为了获得该属性值,我使用了this post

最佳答案

您可以从actionBarSize主题属性中读取操作栏的高度。这会根据设备配置而变化,因此请确保在创建或重新创建活动时始终阅读该配置。

10-08 11:19