I'm using the Showcase
library to explain my application feature to
the user. In some point I need to dim the whole ActionBar
to present
another feature to the user.
For that I'm using the setAlpha(float num)
of the View
class. And so for doing that I need to get the actual view instance of my ActionBar
By the way, I'm using the support-7-appcompat
library that gives ActionBar support for older systems.
Update
In the meantime I found this option, if you configure a custom view and add it to you ActionBar
using:
getSupportActionBar().setCustomView(v);
Then to get the View
of the ActionBar
you could do:
(View) activity.getSupportActionBar().getCustomView().getParent().getParent()
Is there a simpler or easier way to do that?
Yep. You can actually get the view by using this function:
Pretty much the way this works is that the actionbar container uses the id
android.R.id.action_bar_container
, but this id is not public. Therefore we use getIdentifier() to retrieve this id and then the rest is simple.I think this solution is more complete, handling both normal Activity and ActionBarActivity.
It also handles the case that the actionbar was set using a toolbar, but you need to implement it in the activity you've created:
This will get the
Toolbar
/ActionBar
when using the nativeActionBar
, your ownToolbar
from appcompat, or the nativeToolbar
on Lollipop:I made a little fix on @idunnololz code to support ActionBarSherlock
for support.v7 getActionBarView(ById) doesn't work.
this returns actionBar Toolbar :