陈斌彬的技术博客

Stay foolish,stay hungry

Android Support Library更新到v22.1之AppCompat新特性

构建一个可以跑在不同版本 Android 平台的软件,是非常复杂和耗时的。为了解决这个问题,Android 推出了 Android Support Library (安卓兼容包),让新的UI控件也可以跑在早期的 Android 版本。最近Android Support Library 更新到v22.1,这一版本主要AppCompat做了一些大的调整。

重构AppCompat

初期AppCompat只是让Actionbar兼容到API 7。在AppCompat 21版本中,加入主题色、Toolbar等功能。显然ActionBarActivity这个名字已经不在适用AppCompat。新版本中,推荐使用AppCompatActivity 代替ActionBarActivity。

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"/>

AppCompatDialog对话框

终于加入MD对话框和新主题theme Theme.AppCompat.Dialog

使用

  AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Dialog");
        builder.setMessage("少数派客户端");
        builder.setPositiveButton("OK", null);
        builder.setNegativeButton("Cancel", null);
        builder.show();

Resource Reference