Se você estava usando AppCompatActivity
e seguiu o caminho de não usá-lo, porque queria não obter o automático ActionBar
que ele fornece, porque deseja separar o Toolbar
, por causa de suas necessidades de Design de Material e , CoordinatorLayout
ou AppBarLayout
, então, considere isso:
Você ainda pode usar o AppCompatActivity
, não precisa parar de usá-lo apenas para poder usar um <android.support.v7.widget.Toolbar>
no seu xml. Basta desativar o estilo da barra de ação da seguinte maneira:
Primeiro, derivar um estilo de um dos temas NoActionBar que você gosta no seu styles.xml
, usei Theme.AppCompat.Light.NoActionBar
assim:
<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>
No manifesto do seu aplicativo, escolha o tema de estilo filho que você acabou de definir, assim:
<activity
android:name=".activity.YourSuperCoolActivity"
android:label="@string/super_cool"
android:theme="@style/SuperCoolAppBarActivity">
</activity>
No seu XML de atividade, se a barra de ferramentas estiver definida assim:
...
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
/>
...
Então, e esta é a parte importante, você define a barra de Ação de suporte como AppCompatActivity que está estendendo, para que a barra de ferramentas em seu xml se torne a barra de ação. Eu sinto que essa é uma maneira melhor, porque você pode simplesmente fazer as várias coisas que o ActionBar permite, como menus, título automático de atividade, manipulação de seleção de itens, etc., sem recorrer à adição de manipuladores de clique personalizados, etc.
Na substituição onCreate da sua atividade, faça o seguinte:
@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);
}