Skip to content Skip to sidebar Skip to footer

Create Own Action Bar In Android

I have some problems with action bar in android. I want to have some icons on left side and on right side. On left side I want to have 2 icons and text and on right side I would li

Solution 1:

Its very simple. Create new class that will be extended from some layout. Inflate xml which will be have icons and buttons. And make methods for logic show\hide\set listeners and so on. I did it early but now i can say that it's not so good idea. There are guidelines and very important to create apps as it must be.

Example from my old project :

publicclassActionBarextendsRelativeLayout {
    private ToggleButton buttonSave;
    private ToggleButton buttonClear;
    private ToggleButton buttonHelp;
    private ToggleButton buttonBack;
    private FrameLayout sepparator;
    private TextView textview;
    private ImageView imageViewIcon;


    publicActionBar(Context context, AttributeSet attrs) {
        super(context, attrs);

        LayoutInflaterlayoutInflater= (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        layoutInflater.inflate(R.layout.actionbar, this);

        initView();
    }

    privatevoidinitView() {
        buttonSave = (ToggleButton) findViewById(R.id.actionbar_togglebutton_save);
        buttonBack = (ToggleButton) findViewById(R.id.actionbar_togglebutton_back);
        buttonHelp = (ToggleButton) findViewById(R.id.actionbar_togglebutton_help);
        textview = (TextView) findViewById(R.id.actionbar_textview);
        imageViewIcon = (ImageView) findViewById(R.id.actionbar_imageview_icon);
        buttonClear = (ToggleButton) findViewById(R.id.actionbar_togglebutton_clear);
        sepparator = (FrameLayout) findViewById(R.id.actionbar_sepparator);
    }

    publicvoidsetOnSaveButtonClickListener(OnClickListener listener) {
        buttonSave.setOnClickListener(listener);
    }

    publicvoidsetSaveButtonDrawable(Drawable d) {
        buttonSave.setBackgroundDrawable(d);
        buttonSave.setVisibility(View.VISIBLE);
    }

    publicvoidsetOnHelpButtonClickListener(OnClickListener listener) {
        buttonHelp.setOnClickListener(listener);
    }
    publicvoidsetHelpButtonDrawable(Drawable d) {
        buttonHelp.setBackgroundDrawable(d);
        buttonHelp.setVisibility(View.VISIBLE);
    }

    publicvoidsetOnBackButtonClickListener(OnClickListener listener) {
        buttonBack.setOnClickListener(listener);
    }

    publicvoidsetBackButtonDrawable(Drawable d) {
        buttonBack.setBackgroundDrawable(d);
        buttonBack.setVisibility(View.VISIBLE);
    }

    publicvoidsetClearButtonDrawable(Drawable d) {
        buttonClear.setBackgroundDrawable(d);
        buttonClear.setVisibility(View.VISIBLE);
    }

    publicvoidsetOnClearButtonClickListener(OnClickListener listener) {
        buttonClear.setOnClickListener(listener);
    }

    publicvoidsetTitle(String value) {
        textview.setText(value);
    }

    publicvoidsetIcon(int resId) {
        imageViewIcon.setImageDrawable(getResources().getDrawable(resId));
    }

    publicvoidsetOnIconClickListener(OnClickListener listener) {
        imageViewIcon.setOnClickListener(listener);
    }

    publicvoidsetSaveButtonChecked(boolean value) {
        buttonSave.setChecked(value);
    }

    publicvoidsetSeporatorVisible(int visibility) {
        sepparator.setVisibility(visibility);
    }

    publicvoidsetOnIconListener(OnClickListener listener) {
        imageViewIcon.setOnClickListener(listener);
    }
}

XML :

<?xml version="1.0" encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="60dp"android:background="@drawable/avtion_bar_bg" ><ToggleButtonandroid:id="@+id/actionbar_togglebutton_back"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_centerVertical="true"android:visibility="gone"android:background="@drawable/arrow_back_button_drawable"android:textOn=""android:textOff="" /><ImageViewandroid:id="@+id/actionbar_imageview_icon"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_centerVertical="true"android:layout_toRightOf="@id/actionbar_togglebutton_back"android:layout_marginLeft="19.1dp"/><TextViewandroid:id="@+id/actionbar_textview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_centerVertical="true"android:textColor="@color/actionbar_text"android:textSize="16dp"android:layout_toRightOf="@id/actionbar_imageview_icon"android:layout_marginLeft="56.1dp" /><RelativeLayoutandroid:id="@+id/actionbar_relativelayout_saveconteiner"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_centerVertical="true"><ToggleButtonandroid:id="@+id/actionbar_togglebutton_save"android:layout_width="wrap_content"android:layout_height="wrap_content"android:visibility="gone"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:background="@drawable/save_btn_drawable"android:textOn=""android:textOff=""/><FrameLayoutandroid:id="@+id/actionbar_sepparator"android:layout_width="0.5dp"android:background="@color/white25transpert"android:layout_toLeftOf="@id/actionbar_togglebutton_save"android:layout_height="35dp"android:layout_centerInParent="true"></FrameLayout><ToggleButtonandroid:id="@+id/actionbar_togglebutton_clear"android:layout_width="wrap_content"android:layout_height="wrap_content"android:visibility="gone"android:layout_toLeftOf="@id/actionbar_sepparator"android:layout_marginRight="4dp"android:layout_centerVertical="true"android:background="@drawable/clear_button_drawable"android:textOn=""android:textOff=""/></RelativeLayout><ToggleButtonandroid:id="@+id/actionbar_togglebutton_help"android:layout_width="wrap_content"android:layout_height="wrap_content"android:visibility="gone"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:background="@drawable/save_btn_drawable"android:layout_marginRight="10dp"android:textOn=""android:textOff=""/></RelativeLayout>

Good luck!

Post a Comment for "Create Own Action Bar In Android"