Android ActionBar setActionView problema de diseño

He estado tratando de usar setActionView desde ActionBar en ICS

Parece que debería ser sencillo, pero de alguna manera no estoy obteniendo la alineación del diseño que esperaría. Como puede ver en la imagen de abajo, el icono "objetivo" está centrado correctamente dentro de su diseño. Pero cuando configuro Barra de acción (progreso), la vista de progreso siempre está alineada a la derecha, lo que sea que intente.

Aquí están los 2 estados, antes y después de hacer clic en el elemento del menú. Como puede ver, la vista de progreso siempre está alineada a la derecha. He intentado cambiar las opciones de gravedad en el diseño de mi progreso xml de izquierda a derecha al centro, y lo que sea que cambie no parece cambiar nada.

No he encontrado ninguna información sobre este problema, así que estoy pensando que debo estar haciendo algo mal.

¿Alguien tiene una pista? ¡Gracias por la ayuda!

Aquí está mi diseño de menú de la barra de acción '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>

Aquí está mi diseño de la barra de progreso '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>

Y finalmente aquí está mi actividad 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;
    }
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta