Android ActionBar setActionView-Layoutproblem

Ich habe versucht, setActionView aus der ActionBar in ICS zu verwenden

Scheint so, als sollte es einfach sein, aber irgendwie bekomme ich nicht das Layout, auf das ich hoffen würde. Wie Sie in der Abbildung unten sehen können, ist das Zielsymbol im Layout korrekt zentriert. Aber wenn ich ActionBar (Fortschritt) setze, wird die Fortschrittsanzeige immer nach rechts ausgerichtet, was auch immer ich versuche.

Hier sind die 2 Zustände vor und nach dem Klicken auf den Menüpunkt. Wie Sie sehen, ist die Fortschrittsanzeige immer rechts ausgerichtet. Ich habe versucht, die Schwerkraftoptionen in meinem Fortschrittslayout-XML von links nach rechts zu zentrieren, und was ich ändere, scheint nichts zu ändern.

Ich habe keine Informationen zu diesem Problem gefunden, daher denke ich, dass ich etwas falsch machen muss.

Hat jemand eine Ahnung? Danke für die Hilfe!

Hier ist mein Aktionsleistenmenü-Layout '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>

Hier ist mein Progressbar-Layout '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>

Und zum Schluss hier meine testx Aktivität

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;
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage