Android 3.0  Android 推了 ActionBar 这个控件,而到了2013 年 (4.0)Google 开始大力地推动所谓的 android style,material design .

toolbar actionbar 区别在toolbar可以改变任意位置。

toolbar布局:

 

setNavigationIcon

即设定 up button 的图标,因为 Material 的介面,在 Toolbar这里的 up button样式也就有別于过去的 ActionBar 哦。

setLogo
APP 的图标。

setTitle
主标题。

setSubtitle
副标题。

setOnMenuItemClickListener
设定菜单各按鈕的动作。

 

 

1.新建一个toolbar的引用。

<android.support.v7.widget.Toolbar
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="10dp"
    android:id="@+id/toolbar"
    android:theme="@style/zcx"
    android:background="@color/colorAccent">

</android.support.v7.widget.Toolbar>

2.代码中引用toolbar

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.toolbar);
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);

其中设置了去掉window title,以显示toolbar。其类似actionbar.

3.设置menu及点击事件

toolbar.inflateMenu(R.menu.main);//设置右上角的填充菜单
        //点击事件
        toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {

                switch (item.getItemId()){
                    case R.id.action_settings:
                        //........
                    case R.id.action_refresh:
                        //........
                }
                Toast.makeText(getApplicationContext(),"zcx",Toast.LENGTH_SHORT).show();

                return true;
            }
        });

 4.设置主题风格

<style name="zcx" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="actionOverflowButtonStyle">@style/ActionButton.Overflow.ZhiHu</item>
    </style>

    <style name="ActionButton.Overflow.ZhiHu" parent="android:style/Widget.Holo.Light.ActionButton.Overflow">
        <item name="android:src">@drawable/icon</item>
    </style>

定义toolbar 主题继承之Theme.AppCompat.Light.NoActionBar,并改变了OverFlow的背景图片。

5.效果(toolbar位置让我移动底部)






posted on 2017-06-13 22:45  zCoderJoy  阅读(262)  评论(0编辑  收藏  举报