Fix bug 5258435 - ActionBar.setBackgroundDrawable
Fix this call to work properly and add methods for setting split/stacked bar backgrounds to match existing styleable elements. Change-Id: I8c6b1c598af1110f84a9098683d8e0226daf2e27
This commit is contained in:
@ -402,12 +402,32 @@ public abstract class ActionBar {
|
||||
public abstract void setDisplayShowCustomEnabled(boolean showCustom);
|
||||
|
||||
/**
|
||||
* Set the ActionBar's background.
|
||||
* Set the ActionBar's background. This will be used for the primary
|
||||
* action bar.
|
||||
*
|
||||
* @param d Background drawable
|
||||
* @see #setStackedBackgroundDrawable(Drawable)
|
||||
* @see #setSplitBackgroundDrawable(Drawable)
|
||||
*/
|
||||
public abstract void setBackgroundDrawable(Drawable d);
|
||||
|
||||
/**
|
||||
* Set the ActionBar's stacked background. This will appear
|
||||
* in the second row/stacked bar on some devices and configurations.
|
||||
*
|
||||
* @param d Background drawable for the stacked row
|
||||
*/
|
||||
public abstract void setStackedBackgroundDrawable(Drawable d);
|
||||
|
||||
/**
|
||||
* Set the ActionBar's split background. This will appear in
|
||||
* the split action bar containing menu-provided action buttons
|
||||
* on some devices and configurations.
|
||||
*
|
||||
* @param d Background drawable for the split bar
|
||||
*/
|
||||
public abstract void setSplitBackgroundDrawable(Drawable d);
|
||||
|
||||
/**
|
||||
* @return The current custom view.
|
||||
*/
|
||||
|
@ -346,7 +346,17 @@ public class ActionBarImpl extends ActionBar {
|
||||
}
|
||||
|
||||
public void setBackgroundDrawable(Drawable d) {
|
||||
mContainerView.setBackgroundDrawable(d);
|
||||
mContainerView.setPrimaryBackground(d);
|
||||
}
|
||||
|
||||
public void setStackedBackgroundDrawable(Drawable d) {
|
||||
mContainerView.setStackedBackground(d);
|
||||
}
|
||||
|
||||
public void setSplitBackgroundDrawable(Drawable d) {
|
||||
if (mSplitView != null) {
|
||||
mSplitView.setSplitBackground(d);
|
||||
}
|
||||
}
|
||||
|
||||
public View getCustomView() {
|
||||
|
@ -76,6 +76,21 @@ public class ActionBarContainer extends FrameLayout {
|
||||
mActionBarView = (ActionBarView) findViewById(com.android.internal.R.id.action_bar);
|
||||
}
|
||||
|
||||
public void setPrimaryBackground(Drawable bg) {
|
||||
mBackground = bg;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
public void setStackedBackground(Drawable bg) {
|
||||
mStackedBackground = bg;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
public void setSplitBackground(Drawable bg) {
|
||||
mSplitBackground = bg;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the action bar into a "transitioning" state. While transitioning
|
||||
* the bar will block focus and touch from all of its descendants. This
|
||||
|
Reference in New Issue
Block a user