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