Android5.0特性ToolBar

来源:互联网 发布:淘宝十字绣回收 编辑:程序博客网 时间:2024/05/16 09:20

>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);    }}
运行程序:


1 0