昔々, こんな記述がありました.
... 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まで対応できる」という後方互換の意味でしたよね.
関連ワード: Android・AndroidStudio・Google・今さら聞けない・初心者・開発・android 6.0・api23・appcompat-v7・marshmallow