>Toolbar是什么?大概说一下它的官方介绍。Toolbar是应用的内容的标准工具栏,`可以说是Actionbar的升级版`,两者不是独立关系,要使用Toolbar还是得跟ActionBar扯上关系的。相比Actionbar Toolbar最明显的一点就是变得很`自由,可随处放置`,因为它是作为一个`ViewGroup来定义使用的`,所以单纯使用ActionBar已经稍显过时了,它的一些方法已被标注过时。
步骤如下:
1.引入v7包,去除actionBar
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
</style>
2.创建ToolBar的布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ff0000">
</android.support.v7.widget.Toolbar>
3.使用toolbar
//布局中使用
<include layout="@layout/include_toolbar"></include>
//写代码
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);//这个方法是在ActionBarActivity里面,对应的Activity需要继承actionBarActivity
全部代码如下:
style代码:
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> </style> </resources>
2.创建ToolBar的布局
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ff0000"> </android.support.v7.widget.Toolbar>
3.使用toolbar
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" tools:context="com.itydl.toolbar.MainActivity"> <include android:id="@+id/toobar" layout="@layout/include_toolbar"></include> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!"/> </LinearLayout>
4看主活动代码:
package com.itydl.toolbar; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.Toolbar; public class MainActivity extends ActionBarActivity { private Toolbar mToolbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { mToolbar = (Toolbar) findViewById(R.id.toobar); //toobar替换actionbar setSupportActionBar(mToolbar); } }
接下来再加入测拉功能。在上边的基础上稍作修改就好了。
布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" tools:context="com.itydl.toolbar.MainActivity"> <!--引入toolbar--> <include android:id="@+id/toobar" layout="@layout/include_toolbar"></include> <!--DrawerLayout加入测拉菜单--> <android.support.v4.widget.DrawerLayout android:id="@+id/main_drawer_drawerlayout" android:layout_width="match_parent" android:layout_height="match_parent"> <!--主界面,使用帧布局--> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#59cfbe"> </FrameLayout> <!--左侧测拉界面,使用帧布局--> <FrameLayout android:layout_gravity="left" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#5bcf59"> </FrameLayout> </android.support.v4.widget.DrawerLayout> </LinearLayout>主活动代码:
package com.itydl.toolbar; import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.widget.Toolbar; public class MainActivity extends ActionBarActivity { private Toolbar mToolbar; private DrawerLayout mDrawerLayout; private ActionBarDrawerToggle mToggle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initDrawerLayout(); } private void initDrawerLayout() { //加入DrawerLayout的步骤。 mToggle = new ActionBarDrawerToggle(this,mDrawerLayout, R.string.open,R.string.close); //同步状态 mToggle.syncState(); //设置监听 mDrawerLayout.setDrawerListener(mToggle); } private void initView() { mToolbar = (Toolbar) findViewById(R.id.toobar); //toobar替换actionbar setSupportActionBar(mToolbar); //获取DrawerLayout布局 mDrawerLayout = (DrawerLayout) findViewById(R.id.main_drawer_drawerlayout); } }运行程序: