我正在开发Android平板电脑(XOOM)的应用程序,我想知道是否可以将操作栏放在屏幕的底部,而不是顶部(这是默认选项)
感谢。
答案 0 :(得分:2)
如果您在Action中获取ActionBar,则可以将此android:uiOptions =“splitActionBarWhenNarrow”添加到该特定Activity的清单中。
这对我有用:)
答案 1 :(得分:2)
是的,有可能这样,试试这个。
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();
}
}
}