Anderer Ansatz wäre, ein eigenes Layout für Ihre ActionBar zu verwenden:
Grundsätzlich definieren Sie ein Layout, die Ihren Toggle enthält:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ToggleButton
android:id="@+id/actionbar_service_toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="Logging On"
android:textOff="Logging Off" />
</RelativeLayout>
Alternative 1: Dann in Ihrer Aktivität oder Fragment Behälter Sie tun:
ActionBar actionBar = getSupportActionBar();
actionBar.setCustomView(R.layout.actionbar_top);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_CUSTOM);
...
ToggleButton button = (ToggleButton) findViewById(R.id.actionbar_service_toggle);
Beachten Sie, dass Sie eine echte ToggleButton haben und Sie es im Code als reales Objekt ToggleButton sind Handling, die viele Vorteile im Vergleich zu mit Ihnen neu implementieren Ihre eigenen Knebel (Thema hat, Zuverlässigkeit, Ansichten Hierarchie, native Unterstützung ...).
Quellcode here.
Alternative 2: Eine andere Möglichkeit, es zu tun einzubetten ist Ihre benutzerdefinierte Ansicht in eine reguläre Menüansicht:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/myswitch"
android:title=""
android:showAsAction="always"
android:actionLayout="@layout/actionbar_service_toggle" />
</menu>
, warum Sie nicht verwenden möchten, eine benutzerdefinierte Aktion Layout? –
Ich hatte bereits ein benutzerdefiniertes Layout für die Aktionsleiste verwendet Titel – RajeshVijayakumar
Sie können im Überlaufmenü keinen 'ToggleButton' setzen. Das Überlaufmenü kann jedoch überprüfbare Elemente unterstützen - das habe ich nicht versucht. – CommonsWare