없애기 - Android ActionBar를 맨 아래에 둘 수 있습니까?



안드로이드 커스텀 메뉴 (2)

나는 안드로이드 태블릿 (XOOM)에 응용 프로그램을 개발하고, 그것이 (기본 옵션입니다 상단) 대신 화면 하단에 작업 표시 줄을 넣어 possile인지 알고 싶습니다.

감사.

https://src-bin.com


Answer #1

액티비티에서 ActionBar를 얻는다면 해당 액티비티에 대한 매니페스트에 android : uiOptions = "splitActionBarWhenNarrow"를 추가하면됩니다.

그것은 나를 위해 일했다 :)


Answer #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();

        }
    }
}




xoom