6

I use the actionbarsherklock library with custom action bar look like this:

enter image description here

My custom implement:

  ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);

    // Do any other config to the action bar
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    getSupportActionBar().setDisplayShowHomeEnabled(false);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    // set custom view
    View actionBarView = getLayoutInflater().inflate(
            R.layout.action_bar_default, null);

    View btnMenuLeft= actionBarView.findViewById(R.id.btnMenuLeft);
    btnMenuLeft.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            toggle();
        }
    });

    View btnMenuShare= actionBarView.findViewById(R.id.btnMenuShare);
    ActionBar.LayoutParams params = new ActionBar.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
    actionBar.setCustomView(actionBarView, params);

    // Hide the home icon
    actionBar.setIcon(android.R.color.transparent);
    actionBar.setLogo(android.R.color.transparent);

And here is the custom layout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/nav_bar_bg"
android:gravity="center"
android:orientation="horizontal" >

<!-- menu button -->
    <ImageButton
        android:id="@+id/btnMenuLeft"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/list_btn"
        android:clickable="false"
        android:duplicateParentState="true"
        android:focusable="false" />

    <!-- logo -->
    <ImageView       
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_weight="1"
    android:src="@drawable/app_logo" />

    <!-- share button -->
    <ImageButton
         android:id="@+id/btnMenuShare"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/action_btn"
        android:clickable="false"
        android:duplicateParentState="true"
        android:focusable="false" />

The problem is that I want add an over flow menu to share button like this one:

enter image description here

Please tell me how can I do that with the custom action bar layout.

6
  • does your device have a hardware menu button? Commented Oct 14, 2013 at 4:22
  • I support many devices from android 2.3 so I think yes. Commented Oct 14, 2013 at 4:24
  • android-developers.blogspot.in/2012/01/…. this could help Commented Oct 14, 2013 at 4:30
  • @Raghunandan Sorry, I don't know what you mean. I say again: I support many devices with or without menu button. And I don't care when user press menu button. I just want to show overflow menu when they press share button. Is that make sense? Commented Oct 14, 2013 at 4:40
  • check this if it helps blog.vogella.com/2013/08/06/… Commented Oct 14, 2013 at 5:11

2 Answers 2

5

Seem there is no right way to solve this problem, so I tried a hack by using popup windows with list adapter to fake action bar overflow menu.
It look like this example: http://rajeshandroiddeveloper.blogspot.com/2013/07/android-popupwindow-example-in-listview.html

Sign up to request clarification or add additional context in comments.

Comments

3

Just override this two methods to call overflow menu in your activity which one is extending ActionBarActivity :

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.your_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

2 Comments

you don't get the point. Because I use my own custom layout for actionbar, so I can't add menu into share button like image above.
@R4j I also used my custom actionbar and opening the same dropdown as above image,so give answer to your own question with different solution and make it as a right solution is not a proper way!!!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.