Якщо ви були з допомогою 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>
У вашій діяльності Xml, якщо панель інструментів визначена так:
...
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
/>
...
Потім, і це важлива частина, ви встановлюєте панель дій підтримки на AppCompatActivity, яку ви розширюєте, так що панель інструментів у вашому xml стає на панель дій. Я вважаю, що це кращий спосіб, тому що ви можете просто зробити багато речей, які дозволяє ActionBar, наприклад, меню, автоматична назва заголовка, обробка вибору елементів тощо, не вдаючись до додавання користувальницьких обробників кліків тощо.
У розділі "Перетворення" своєї активності виконайте наступне:
@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);
}