Search code examples
androidactionbarsherlock

Actionbarsherlock getHeight() returns 0


I'm using Actionbarsherlock and I want to place a PopupWindow right below the action bar. Using the showAtLocation() takes an x and y offset, so ideally the y offset would be the height of the action bar. But when I call

int abHeight = getSupportActionBar().getHeight();

it returns zero. I'm using a SherlockFragmentActivity

Here's the relevant code:

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();

I've looked all over and can't find a similar question/answer, so has anyone experienced this before? Thanks.

EDIT: Jake's answer was right on. In order to get that attribute value I used this post.


Solution

  • You can read the height of the action bar from the actionBarSize theme attribute. This changes based on the device configuration so make sure you are always reading it when your activity is created or recreated.