昔々, こんな記述がありました.
...
dependencies {
compile "com.android.support:appcompat-v7:21.0.+"
}
...
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.blah);
Toolbar toolbar = (Toolbar) findViewById(R.id.myawesometoolbar);
setSupportActionBar(toolbar);
}
...
...
<android.support.v7.widget.Toolbar
android:id=”@+id/my_awesome_toolbar”
android:layout_height=”wrap_content”
android:layout_width=”match_parent”
android:minHeight=”?attr/actionBarSize”
android:background=”?attr/colorPrimary” />
...
AppCompat v21 — Lollipop 搭載前のデバイスにマテリアル デザインを! - Google Developer Japan Blog
旧ActionBarを隠したりとか, そんなテーマのとか, メニューのとか, 面倒でしたが今ではもうこの記述不要なのですね.
以下, Android Studio で BlankActivity をGUIから作成. API23.
...
dependencies {
...
compile 'com.android.support:appcompat-v7:23.0.1'
}
...
...
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
...
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
...
>
<TextView
android:text="Hello World!"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
KITKATでもLOLLIPOPでもきちんと表示されます.
テーマは, 非NoActionBarを親にして色を設定.
...
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
...
前の記述のままでも動いてしまうのですが, 消したほうが気持ちがよいです.
元々,「appcompat-v7」の「v7」というのは,「API7まで対応できる」という後方互換の意味でしたよね.