Si el widget no aparece en la barra de acción, es probable que sea porque está utilizando AppCompat para su acción-bar. Para resolver este interruptor "android:" a "app:" frente a "showAsAction" y "actionLayout" en su menu.xml
Añadir artículo a XML, la aplicación: en lugar del androide:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/myswitch"
android:title=""
app:showAsAction="always"
app:actionLayout="@layout/switch_layout"
/>
</menu>
diseño
Hacer que está utilizando para su "aplicación: actionLayout"
switch_layout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<Switch
android:id="@+id/switchAB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
/>
</RelativeLayout>
Inflar el menú en su ActionBarActivity como lo haría normalmente
getMenuInflater().inflate(R.menu.mainmenu, menu);
return true;
Esto debería hacer que el interruptor aparezca en su barra de acciones, si no aparecía.
Hola para "Los diseños personalizados para el menú siempre deben ser RelativeLayout". ¿Hay algún estado de doc que? – Yeung
Bueno, es verdad. Si cambio a FrameLayout, el interruptor no es fácil de tocar. – Yeung
Si uso LinearLayout todo funciona bien aquí. ¡Gracias por responder! – Erwin