Jeśli ty były przy użyciu AppCompatActivity
i poszły w dół drogi nie jest używany, ponieważ nie chciał, aby uzyskać automatyczne ActionBar
, że zapewnia, ponieważ chcemy, aby oddzielić się z Toolbar
powodu swoich potrzeb Materiał projekt i CoordinatorLayout
czy AppBarLayout
zatem rozważyć to:
Nadal możesz używać AppCompatActivity
, nie musisz przestać go używać tylko po to, aby móc użyć <android.support.v7.widget.Toolbar>
w xml. Po prostu wyłącz styl paska akcji w następujący sposób:
Po pierwsze, uzyskaj styl z jednego z motywów NoActionBar, który lubisz w swoim styles.xml
, użyłem go w ten Theme.AppCompat.Light.NoActionBar
sposób:
<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>
W manifeście aplikacji wybierz właśnie zdefiniowany motyw stylu potomnego:
<activity
android:name=".activity.YourSuperCoolActivity"
android:label="@string/super_cool"
android:theme="@style/SuperCoolAppBarActivity">
</activity>
W pliku XML aktywności, jeśli pasek narzędzi jest zdefiniowany w następujący sposób:
...
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
/>
...
I to jest ważna część, którą ustaliłeś pasek akcji wsparcia na AppCompatActivity, które rozszerzasz, tak aby pasek narzędzi w twoim pliku xml stał się się paskiem akcji. Uważam, że jest to lepszy sposób, ponieważ możesz po prostu robić wiele rzeczy, na które pozwala ActionBar, takich jak menu, automatyczny tytuł aktywności, obsługa wyboru pozycji itp. Bez uciekania się do dodawania niestandardowych programów obsługi kliknięć itp.
W zastąpieniu onCreate działania wykonaj następujące czynności:
@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);
}