手记

ActionBar详解和toolbar详解


ActionBar详解

一、Actionbar的使用用途
1. Actionbar的五大用途:可以使用图标做导航
2. 提供导航标签
3. 提供下拉列表导航
4. 为菜单添加动作视图
5. 为菜单添加Actionprovide

二、Actionbar的使用方法
1.如果不使用Actionbar的时候可以<activity android :theme=”@android:style/Theme.holo.NoActionBar”>也可以在java代码中设置ActionBar actionbar=getActionBar();
Actionbar.hide();

  1. actionBar的基本使用方法
private void setActionBar() {
    actionbar = getSupportActionBar();
    //显示返回箭头默认是不显示的
    actionbar.setDisplayHomeAsUpEnabled(true);
    //显示左侧的返回箭头,并且返回箭头和title一直设置返回箭头才能显示
    actionbar.setDisplayShowHomeEnabled(true);
    actionbar.setDisplayUseLogoEnabled(true);
    //显示标题
    actionbar.setDisplayShowTitleEnabled(true);
    actionbar.setTitle("   ");
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home://actionbar的左侧图标的点击事件处理
            finish();
            break;
    }
    return super.onOptionsItemSelected(item);
}

2. 也可以自定义ActionBar

private void setCustomActionBar() {
    if (actionbar != null) {
        //在自定义的actionbar中设置
        actionbar.setDisplayHomeAsUpEnabled(false);
        actionbar.setDisplayShowHomeEnabled(false);
        actionbar.setDisplayShowTitleEnabled(false);
        //设置自定义的view
        actionbar.setDisplayShowCustomEnabled(true);
        actionbar.setCustomView(R.layout.activity_title);
    }
}

ToolBar详解

1、用途
1参考Actionbar
2、使用方法

  1. 使用系统自带的
1,  Style
2,  <!--Base application theme. -->
<style name="AppTheme" parent="AppTheme.Base">
</style>

<style name="AppTheme.Base" parent="Theme.AppCompat">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="colorPrimary">@color/accent_material_dark</item>
    <item name="colorPrimaryDark">@color/accent_material_light</item>
    <item name="android:windowBackground">@color/dim_foreground_material_dark</item>
</style>

3, Xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <!--<include layout="@layout/activity_toolbar_title"/>-->

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/colorPrimary">
    </android.support.v7.widget.Toolbar>

</LinearLayout>

4, java代码

     /**
     *设置toolbar
     */
    private void setToolbar(){
        Toolbar toolbar= (Toolbar) findViewById(R.id.toolbar);
        //设置APP图标
        toolbar.setLogo(R.mipmap.ic_launcher);
        //设置title
        toolbar.setTitle("欢迎页");
        //设置副标题 zxcv
        toolbar.setSubtitle("副标题");
        setSupportActionBar(toolbar);

        //设置toolabar
//设置导航图标一定要设置在setsupportactionbar后面才有用不然他会显示小箭头
        toolbar.setNavigationIcon(R.mipmap.ic_launcher);
        toolbar.setOnMenuItemClickListener(onMenuItemClick);

    }
    private Toolbar.OnMenuItemClickListener onMenuItemClick = new Toolbar.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem menuItem) {
            String msg = "";
            switch (menuItem.getItemId()) {
                //进行设置toolbar中menuitem的点击事件
            }
            if(!msg.equals("")) {
            }
            return true;
        }
    };

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

2.自定义
自定义toolbar可以在

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary">
</android.support.v7.widget.Toolbar>

这个里面添加子控件

23人推荐
随时随地看视频
慕课网APP

热门评论

Activity默认是初始化了Toolbar的

我想问问,toolbar在fragmentactivity里初始化。为什么报错,说已经存在了一个toolbar。

查看全部评论