Problem z układem Android ActionBar setActionView

Próbowałem użyć setActionView z ActionBar w ICS

Wygląda na to, że powinno być prosto, ale w jakiś sposób nie uzyskuję wyrównania układu, na które mam nadzieję. Jak widać na obrazku poniżej, ikona „celu” jest prawidłowo wyśrodkowana w swoim układzie. Ale kiedy I setActionBar (postęp) widok postępu jest zawsze wyrównany do prawej strony, co próbuję.

Oto 2 stany przed i po kliknięciu pozycji menu. Jak widać, widok postępu jest zawsze wyrównany do prawej strony. Próbowałem zmienić opcje grawitacji w xml mojego układu postępu od lewej do prawej do centrum i cokolwiek zmieniam, nie wydaje się, żeby cokolwiek zmieniło.

Nie znalazłem żadnych informacji dotyczących tego problemu, więc myślę, że muszę robić coś złego.

Czy ktoś ma jakąś wskazówkę? Dzięki za pomoc!

Oto układ menu paska akcji „action_bar_menu.xml”

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/locate"
          android:title="locate"
          android:icon="@drawable/locate"
          android:showAsAction="ifRoom|withText" />
</menu>

Oto mój układ paska postępu „inderterminate_progress.xml”

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:gravity="center">

    <ProgressBar android:layout_width="25dp"
                 android:layout_height="25dp"
                 android:layout_gravity="center"
                 android:indeterminate="true"
                 style="?android:attr/progressBarStyleInverse"/>
</FrameLayout>

I wreszcie moja aktywność testx

public class HelloAndroidActivity extends Activity {

    /**
     * Called when the activity is first created.
     * @param savedInstanceState If the activity is being re-initialized after
     * previously being shut down then this Bundle contains the data it most
     * recently supplied in onSaveInstanceState(Bundle). <b>Note: Otherwise it is null.</b>
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        getActionBar().setTitle("Test");
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.action_bar_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        super.onOptionsItemSelected(item);


        if (R.id.locate == item.getItemId()) {

            final MenuItem menuItem = item.setActionView(R.layout.inderterminate_progress);

            new Thread(new Runnable() {
                @Override
                public void run() {
                    SystemClock.sleep(3000);
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            menuItem.setActionView(null);
                        }
                    });
                }
            }).start();
        }

        return true;
    }
}

questionAnswers(2)

yourAnswerToTheQuestion