Toolbar的使用

本次内容主要讲解Android Toolbar的使用及相关注意事项。
Toolbar作为ActionBar的拓展,被用于应用布局中,ActionBar是传统Activity的不透明窗口装饰框架控制的一部分不够灵活,您可能会对它产生厌烦,甚至不如自定义一个类似ActionBar那样的布局来替代它。后来v7带来了Toolbar,Toolbar可以嵌套于各个层次之中,只要你需要它时。要比ActionBar灵活多了,你可以将其布局的底部,中间等等任意位置,无需像actionbar那样固定于顶部。或许你会喜欢上Toolbar。一个应用可以选择设计一个Toolbar作为Activity的a、ActionBar使用,通过setSupportActionBar()方法。
Toolbar比起ActionBar支持更多的特性。从开始到结束,ToolBar可以包含下列可选元素的组合:

**- 一个导航按钮;

  • 一个Logo图标:你可以延长其任意的高和宽;

  • 一个标题和子标题;

  • 一个或更多自定义的views:你可以向Toobar添加任意子视图,并展现于此布局中。如果一个子视图设置了在Toobar的Gravity为CENTER_HORIZONTAL,则所有其他元素被测量后,该视图将尝试显示在工具栏中的可用空间中的中心;

  • 一个活动菜单:可以设置为溢出式的。**

接下来我们来看看Toolbar的使用:
我们新建一个应用,在主布局中添加如下布局代码:

.support.v7.widget.Toolbar
        android:id="@+id/main_actionbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="50dp"
        android:background="@color/colorAccent"/>

背景设置的是粉红色。
需要注意的是,你需要确保项目中右android.support.v7的jar包。
然后在代码中如下设置:

Toolbar toolbar = (Toolbar) findViewById(R.id.main_actionbar);
    toolbar.setLogo(R.mipmap.ic_launcher);
    setSupportActionBar(toolbar);

还需一步重要的布局,就是将原始的ActionBar移除掉:
可以在Manifests中设置
android:theme=”@style/Theme.AppCompat.Light.NoActionBar”
好了,这样就是Toolbar的简单使用,看看效果:
Toolbar的使用_第1张图片
看到在布局中设置的paddingTop=“50dp”起作用了。Toolbar被拉伸了,同样你可以任意的设置其他方向的拉伸。
添加一个导航按钮
需添加如下代码,即可实现。

toolbar.setNavigationIcon(R.drawable.back);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //你要做的事
    }
});

看看效果:
Toolbar的使用_第2张图片
添加一个菜单:

toolbar.setOnCreateContextMenuListener(this);

并且重新菜单的方法

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);
        return  true;
    }

其中menu可自行编写,不再赘述。
看看效果
这里写图片描述这里写图片描述
可是你有没发现,这弹出的菜单把导航栏遮住了,也不美观。那么如何让它显示在下面呢,我们继续。。。
将Manifasts中的主题改为

android:theme="@style/AppTheme"

并且修改style中原有的属性:


    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        -- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary
        "colorPrimaryDark">@color/colorPrimaryDark
        "colorAccent">@color/colorAccent
        
        "android:windowBackground">@color/colorPrimary
        
        "actionOverflowMenuStyle">@style/menuStyle
    style>
    
    <style name="menuStyle" parent="@style/Widget.AppCompat.Light.PopupMenu.Overflow">
        <item name="overlapAnchor">falseitem>
    style>

好了,再来运行一下,奇迹出现了
Toolbar的使用_第3张图片

Toolbar的使用_第4张图片
发现,这变化好大有没有。菜单溢出显示了。
归功于parent=”@style/Widget.AppCompat.Light.PopupMenu.Overflow”的设置;
最顶部的颜色也变成了蓝色且背景主色也变成了蓝色,这主要归功于name=”android:windowBackground”;

好了,就到这里,欢迎围观。。。

你可能感兴趣的:(Android,android,toolbar,Toolbar的使用)