Если вы были с помощью AppCompatActivity
и пошли по пути он не используется, потому что вы хотите , чтобы не получить автоматическое , ActionBar
что она обеспечивает, потому что вы хотите выделить Toolbar
, из - за ваших потребностей Material Design и CoordinatorLayout
или AppBarLayout
, то, считаю , что это:
Вы все еще можете использовать AppCompatActivity
, вам не нужно прекращать использовать его только для того, чтобы вы могли использовать <android.support.v7.widget.Toolbar>
в вашем XML. Просто отключите стиль панели действий следующим образом:
Во-первых, выведите стиль из одной из тем NoActionBar, которая вам нравится в вашей styles.xml
, которую я использовал Theme.AppCompat.Light.NoActionBar
следующим образом:
<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>
В манифесте своего приложения выберите только что определенную тему дочернего стиля, например:
<activity
android:name=".activity.YourSuperCoolActivity"
android:label="@string/super_cool"
android:theme="@style/SuperCoolAppBarActivity">
</activity>
В вашем Activity Xml, если панель инструментов определена так:
...
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
/>
...
Затем, и это важная часть, вы устанавливаете для панели действий поддержки значение AppCompatActivity, которое вы расширяете, чтобы панель инструментов в xml стала панелью действий. Мне кажется, что это лучший способ, потому что вы можете просто делать множество вещей, которые позволяет ActionBar, например, меню, автоматический заголовок активности, обработку выбора элементов и т. Д., Не прибегая к добавлению пользовательских обработчиков кликов и т. Д.
В переопределении onCreate вашей активности выполните следующие действия:
@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);
}