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.
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:
public View getActionBarView() {
Window window = getWindow();
View v = window.getDecorView();
int resId = getResources().getIdentifier("action_bar_container", "id", "android");
return v.findViewById(resId);
}
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.