ActionBar详解和toolbar详解

转自:http://www.imooc.com/article/2844


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>

这个里面添加子控件


作者: woailvjingwen 
链接:http://www.imooc.com/article/2844
来源:慕课网
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要加大 actionbar 中 homeAsUp 和 title 的间距,可以通过自定义样式来实现。具体步骤如下: 1. 在 styles.xml 文件中添加一个新的样式,并继承自你当前使用的 actionbar 样式,比如: ``` <style name="CustomActionBar" parent="@style/Widget.AppCompat.ActionBar"> <!-- 在这里添加你的自定义属性 --> </style> ``` 2. 在自定义样式中添加一个新的属性 `android:actionBarTitleTextAppearance`,并指定一个自定义的文本样式,比如: ``` <style name="CustomActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textSize">18sp</item> <item name="android:textColor">@android:color/white</item> <!-- 在这里添加你的自定义属性 --> </style> ``` 3. 在自定义样式中添加一个新的属性 `android:homeAsUpIndicator`,并指定一个自定义的图标,比如: ``` <style name="CustomActionBarHome" parent="@style/Widget.AppCompat.ActionBar"> <item name="android:homeAsUpIndicator">@drawable/ic_back_button</item> <!-- 在这里添加你的自定义属性 --> </style> ``` 4. 在自定义样式中添加一个新的属性 `android:titleTextStyle`,并指定为之前定义的自定义文本样式,比如: ``` <style name="CustomActionBar" parent="@style/Widget.AppCompat.ActionBar"> <item name="android:actionBarTitleTextAppearance">@style/CustomActionBarTitle</item> <item name="android:homeAsUpIndicator">@drawable/ic_back_button</item> <item name="android:titleTextStyle">@style/CustomActionBarTitle</item> <!-- 在这里添加你的自定义属性 --> </style> ``` 5. 在布局文件中,将 actionbar 样式指定为你自定义的样式,比如: ``` <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" app:theme="@style/CustomActionBar" /> ``` 6. 在你的 Activity 中,通过 `getSupportActionBar()` 方法获取 actionbar 对象,并调用 `setHomeAsUpIndicator()` 方法来设置 homeAsUp 图标,比如: ``` getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_back_button); ``` 7. 最后,在自定义文本样式中添加一个新的属性 `android:paddingStart` 或 `android:paddingEnd`,来调整 homeAsUp 图标和 title 之间的间距,比如: ``` <style name="CustomActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textSize">18sp</item> <item name="android:textColor">@android:color/white</item> <item name="android:paddingEnd">32dp</item> </style> ``` 这样,你就可以通过自定义样式来加大 actionbar 中 homeAsUp 和 title 的间距了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值