我正在使用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
主题属性中读取操作栏的高度。这会根据设备配置而变化,因此请确保在创建或重新创建活动时始终阅读该配置。