Si estaba usando AppCompatActivity
y ha seguido el camino de no usarlo, porque no quería obtener el automático ActionBar
que proporciona, porque desea separarlo Toolbar
, debido a sus necesidades de Diseño de materiales y , CoordinatorLayout
o AppBarLayout
, entonces, considere esto:
Todavía puede usar el AppCompatActivity
, no necesita dejar de usarlo solo para poder usar un <android.support.v7.widget.Toolbar>
en su xml. Simplemente apague el estilo de la barra de acción de la siguiente manera:
Primero, deriva un estilo de uno de los temas de NoActionBar que te gusta en tu styles.xml
, yo usé Theme.AppCompat.Light.NoActionBar
así:
<style name="SuperCoolAppBarActivity" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<!-- colorPrimaryDark is used for the status bar -->
<item name="colorPrimaryDark">@color/primary_dark</item>
...
...
</style>
En el manifiesto de su aplicación, elija el tema de estilo hijo que acaba de definir, así:
<activity
android:name=".activity.YourSuperCoolActivity"
android:label="@string/super_cool"
android:theme="@style/SuperCoolAppBarActivity">
</activity>
En su Activity Xml, si la barra de herramientas se define así:
...
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
/>
...
Luego, y esta es la parte importante, configura la barra de acción de soporte para AppCompatActivity que está extendiendo, de modo que la barra de herramientas en su xml se convierta en la barra de acción. Creo que esta es una mejor manera, porque simplemente puede hacer las muchas cosas que ActionBar permite, como menús, título de actividad automática, manejo de selección de elementos, etc. sin recurrir a agregar controladores de clics personalizados, etc.
En la anulación onCreate de su Actividad, haga lo siguiente:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_super_cool);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//Your toolbar is now an action bar and you can use it like you always do, for example:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}