简介
- ActionBar是在Android 3.0 之后出现的
- ActionSupport_v7 的22.1版本之后加入AppCompat
效果图
Google I/O 2013中AppCompat实现的Action Bar效果
AppCompat
Actionbar
重构AppCompat
初期AppCompat只是让Actionbar兼容到API 7。
在AppCompat 21版本中,加入主题色、Toolbar等功能。
显然ActionBarActivity这个名字已经不在适用AppCompat。
新版本中,推荐使用AppCompatActivity 代替ActionBarActivity。
AppCompat新特性
- android:theme
新版本AppCompat 允许对 Toolbar 使用 android:theme代替 app:theme. 兼容 API11+.
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_drawer_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_below="@+id/main_statusBar"
android:background="?attr/colorPrimary"
android:translationZ="4dp"
android:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
2 . AppCompatDialog对话框
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Dialog");
builder.setMessage("少数派客户端");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();
终于加入MD对话框和新主题theme Theme.AppCompat.Dialog
使用
3 . Theme修正
<resources>
<style name="MyTheme" parent="MyTheme.Base">
</style>
<style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">#2196F3</item>
<item name="colorPrimaryDark">#1976D2</item>
<item name="colorAccent">#FF4081</item>
</style>
</resources>
修正之前windowNoTitle是带android:前缀的,22.1修正之后如下:
<resources>
<style name="MyTheme" parent="MyTheme.Base">
</style>
<style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">#2196F3</item>
<item name="colorPrimaryDark">#1976D2</item>
<item name="colorAccent">#FF4081</item>
</style>
</resources>