Ich versuche, einen Spinner an der gleichen Position anzuzeigen, wo der Standardtitel der Aktionsleiste angezeigt wird. ich die Anweisung des ähnlichen SO case here gefolgt, so habe ich es geschafft, den Titel zu beseitigen, aber immer noch die Position des Spinners ist nicht nach links ausgerichtet, wie Sie von diesem Bildschirm-shotErsetzen Sie den Titel der Aktionsleiste durch einen Drehfeld (Dropdown)
sind sehen hier die wichtigsten Definitionen meiner Bewerbung um diesen Fall zu reproduzieren:
AndroidMenifest.xml:
<application
android:label="app"
android:icon="@drawable/ic_launcher"
android:theme="@style/Theme.AppCompat" >
...
<activity
android:name="gm.activities.ViewAllActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="gm.activities.MainActivity" />
</activity>
menu_view_all.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="gm.activities.ViewAllActivity">
<item android:id="@+id/spinner"
android:title="will be replaced anyway"
app:showAsAction="ifRoom"
app:actionViewClass="android.widget.Spinner"
android:layout_gravity="left"
android:gravity="left"/>
<item android:id="@+id/action_settings" android:title="@string/action_settings"
android:orderInCategory="100" app:showAsAction="never" />
</menu>
und die entsprechende Aktivität:
public class ViewAllActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_all_activity);
getSupportActionBar().setDisplayShowTitleEnabled(false);
...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_view_all, menu);
MenuItem item = menu.findItem(R.id.spinner);
Spinner spinner = (Spinner) MenuItemCompat.getActionView(item);
spinner.setGravity(Gravity.LEFT);
SpinnerAdapter adapter;
spinner.setAdapter(ArrayAdapter.createFromResource(this,
R.array.all_table_views, android.R.layout.simple_spinner_item));
spinner.setOnItemSelectedListener(this); // set the listener, to perform actions based on item selection
return true;
}
So - Kann ich den Spinner nach links von der Aktionsleiste ausrichten und wie? Ist es richtig Spinner in der Aktionsleiste zu verwenden und durch die menu.xml Datei zu setzen, wie ich es getan habe?
Ich wollte auch erwähnen, dass das Aufrufen von 'setGravity()' auf einer 'Ansicht' den Inhalt der' Ansicht' betrifft, nicht ihre Layoutposition. Nur zu deiner Information. –
Danke! Dies ist die Lösung, die ich implementiert habe, basierend auf Ihrem Vorschlag: http://stackoverflow.com/questions/15542059/spinner-in-actionbar-doesnt-appear – GyRo
@GyRo Cool! Freut mich zu hören, dass es funktioniert hat. Ich wollte nur erwähnen, dass diese Methode auch dann noch funktioniert, wenn Sie sich in Zukunft für eine 'Toolbar' als Unterstützung' ActionBar' entscheiden sollten. Stellen Sie sicher, dass Sie 'setSupportActionBar()' damit aufrufen. Prost! –