这里提供一个实例,可以模仿Google Play里的导航返回按键的效果,只需要使用Android Support V7兼容包,对Android5.0以下的设备同样兼容
理论效果
sample.gif
所需组件
Android Studio (版本0.92,推荐使用实验版本,效果非常好)
gradle 配置
1 2 3 4 |
compile 'com.android.support:appcompat-v7:21.0.0' //optional compile 'com.android.support:cardview-v7:21.0.0' compile 'com.android.support:recyclerview-v7:21.0.0' |
需要掌握的新版UI对象
- Toolbar(Actionbar已经成为了历史)
- TintSpinner(下拉菜单)
- NavigationDrawer(导航栏)
- ActionBarDrawerToggle(这里就是动画的关键,旧版的ActionBarDrawerToggle同样不再支持了)
使用步骤
1. 升级Android Studio到开发版本(可选)
2. Gradle加入上面的依赖项目
3. 新建一个Activity,Android会智能的让你继承 ActionbarActivity
,主题也会继承 Theme.AppCompat
,如果你发现系统没有为你自动建好,按如下检查设置
主程序必须继承 ActionbarActivity
1 |
public class MainActivity extends ActionBarActivity{....} |
主题选项(values/styles.xml
),注意我们再也不要Actionbar了
1 2 3 4 5 6 7 8 9 10 |
<!-- Customize your theme here. --> <item name="windowActionBar">false <item name="android:windowNoTitle">true <!-- Actionbar color --> <item name="colorPrimary">@color/accent_material_dark <!--Status bar color--> <item name="colorPrimaryDark">@color/accent_material_light <!--Window color--> <item name="android:windowBackground">@color/dim_foreground_material_dark |
尝试运行你的程序,如果没问题的话,你的程序应该已经以Android L的效果运行了
4. 安装Toolbar与NavagationDrawer
在你的MainActivity
的布局中,改成如下的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:minHeight="?attr/actionBarSize"></android.support.v7.widget.Toolbar> <android.support.v4.widget.DrawerLayout android:id="@+id/drawer" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/toolbar"> <!-- As the main content view, the view below consumes the entire space available using match_parent in both dimensions. --> <FrameLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" /> <!-- android:layout_gravity="start" tells DrawerLayout to treat this pan class="crayon-s">"start" tells DrawerLayout to treat this
所需组件Android Studio (版本0.92,推荐使用实验版本,效果非常好)gradle 配置
需要掌握的新版UI对象
使用步骤1. 升级Android Studio到开发版本(可选)2. Gradle加入上面的依赖项目3. 新建一个Activity,Android会智能的让你继承
|
1 |
public class MainActivity extends ActionBarActivity{....} |
主题选项(values/styles.xml
),注意我们再也不要Actionbar了
1 2 3 4 5 6 7 8 9 10 |
<!-- Customize your theme here. --> <item name="windowActionBar">false <item name="android:windowNoTitle">true <!-- Actionbar color --> <item name="colorPrimary">@color/accent_material_dark <!--Status bar color--> <item name="colorPrimaryDark">@color/accent_material_light <!--Window color--> <item name="android:windowBackground">@color/dim_foreground_material_dark |
尝试运行你的程序,如果没问题的话,你的程序应该已经以Android L的效果运行了
4. 安装Toolbar与NavagationDrawer
在你的MainActivity
的布局中,改成如下的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:minHeight="?attr/actionBarSize"></android.support.v7.widget.Toolbar> <android.support.v4.widget.DrawerLayout android:id="@+id/drawer" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/toolbar"> <!-- As the main content view, the view below consumes the entire space available using match_parent in both dimensions. --> <FrameLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" /> <!-- android:layout_gravity="start" tells DrawerLayout to treat |