I\'m using actionbarsherlock
to do it.
Example of what I want in the actionbar:
[LOGIN] [COMPANY LOGO] &nb
Wrap the items inside a RelativeLayout. Then use:
android:layout_alignParentLeft
android:layout_alignParentCenter
android:layout_alignParentRight
You should create custom view for that. For example (layout/ab_custom.xml
):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_horizontal" >
<ImageButton
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/left" />
<ImageButton
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:src="@drawable/center" />
<ImageButton
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/right" />
</RelativeLayout>
Then in your Activity's onCreate
call this method:
private void showActionBar() {
LayoutInflater inflator = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.ab_custom, null);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowHomeEnabled (false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setCustomView(v);
}
To take control on your items use this:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.btn1:
//left button, do something
return true;
case R.id.btn2:
//center button
return true;
case R.id.btn3:
// right button
return true;
default:
return super.onOptionsItemSelected(item);
}
}
EDIT: revised my answer. It's better to use RelativeLayout as parent
.