¿Es posible poner Android ActionBar en la parte inferior?
android-actionbar xoom (2)
si está obteniendo su ActionBar en una actividad, puede agregar este android: uiOptions = "splitActionBarWhenNarrow" a su manifiesto para esa actividad específica.
Eso funcionó para mí :)
Estoy desarrollando una aplicación para una tableta Android (XOOM), y me gustaría saber si es posible poner la barra de acción en la parte inferior de la pantalla, en lugar de la parte superior (que es la opción predeterminada).
Gracias.
Sí, es posible así, prueba esto.
public void setActionBArAtBottom(View layoutView, Intent intent,
Context context, ContentValues componentIds) throws Exception {
if (componentIds != null) {
setValues(componentIds);
} else {
System.out
.println("Provide appropriate information to set ActionBar at bottom");
try {
throw new UnsufficientResourcesException();
} catch (UnsufficientResourcesException e) {
e.printStackTrace();
}
}
// getting the parent of screen..actually this is the child of root
// parent...
ViewGroup screenParent = (ViewGroup) layoutView.getParent().getParent();
// now getting actionbarview...as follows...
View actionBArView = ((ViewGroup) screenParent.getChildAt(0))
.getChildAt(0);
// now getting framelayout that is custom layout to display actionbar at
// the bottom...
FrameLayout customActionBarFrameLayout = (FrameLayout) layoutView
.findViewById(BOTTOM_ACTION_BAR_LAYOUT_ID);
// now remove actionbarView from its parent view...
ViewGroup actionBarViewParent = removeFromParent(actionBArView);
removeTitleAndIcon((ViewGroup) actionBArView);
// now setting actionbar view to the framlayout...
customActionBarFrameLayout.addView(actionBArView);
// get the custombar layout....
View customTitleBarLayout = LayoutInflater.from(context).inflate(
NEW_TITLE_BAR_LAYOUT, null);
// setting icon to titile bar...
((ImageView) customTitleBarLayout.findViewById(NEW_TITLE_ICON__ID))
.setImageDrawable(getActivityIcon(intent, context));
// setting title...
((TextView) customTitleBarLayout.findViewById(NEW_TITLE_ID))
.setText(((SherlockActivity) context).getTitle());
// now set this layout to
actionBarViewParent.addView(customTitleBarLayout);
}
// method use to remove child from its parent...
private ViewGroup removeFromParent(View child) {
// removing child...
ViewGroup parentGroup = (ViewGroup) child.getParent();
parentGroup.removeView(child);
return parentGroup;
}
// this method will set application icon to custom title bar layout...
private Drawable getActivityIcon(Intent intent, Context context) {
// getting the current activity icon set...
Drawable drawable = null;
try {
drawable = context.getPackageManager().getActivityIcon(intent);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
return drawable;
}
// remove title and icon from bottombar...
private void removeTitleAndIcon(ViewGroup actionBarViewGroup) {
actionBarViewGroup.removeAllViews();
}
private void setValues(ContentValues contentValues) throws Exception {
try {
BOTTOM_ACTION_BAR_LAYOUT_ID = contentValues
.getAsInteger(BOTTOM_ACTION_BAR_FRAME_LAYOUT_ID);
NEW_TITLE_BAR_LAYOUT = contentValues
.getAsInteger(NEW_TITLE_BAR_LAYOUT_ID);
NEW_TITLE_ICON__ID = contentValues
.getAsInteger(NEW_TITLE_ICON_IMAGEVIEW_ID);
NEW_TITLE_ID = contentValues.getAsInteger(NEW_TITLE_VIEW_ID);
} catch (Exception e) {
throw new UnsufficientResourcesException();
}
}
}