Toolbar 替换ActionBar(android MD 二)
来源:互联网 发布:考辛斯体测数据 编辑:程序博客网 时间:2024/06/02 13:21
Toolbar是Android 5.0推出的一个新的导航控件用于取代之前的ActionBar,由于其高度的可定制性、灵活性、具有Material Design风格等优点被大量采用。
兼容5.0以下版本:
加上依赖
compile 'com.android.support:appcompat-v7:25.+'
借用大佬的一张图
通过设置相应的主题属性得到的效果图
<style name="MainTheme" parent="Theme.AppCompat.Light.NoActionBar"><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorAccent</item><item name="android:textColorPrimary">#ffffff</item><itemname="android:windowBackground">@color/colorAccent</item><item name="android:navigationBarColor">@color/colorPrimary</item></style>
注意事项
- Toolbar要指定 android:background=”?attr/colorPrimary”
- 要去掉之前的ActionBar,例子是用Theme.AppCompat.Light.NoActionBar这个主题去除,也可以用相应的方法;
<style name="Theme.AppCompat.Light.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item></style>
布局文件里添加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:orientation="vertical" android:layout_height="match_parent" tools:context="com.example.toolbardemo.MainActivity"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:background="?attr/colorPrimary" android:layout_width="match_parent" android:layout_height="wrap_content" /></LinearLayout>
Activity里找到Toolbar
Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);setSupportActionBar(mToolbar);
设置标题,导航icon等
mToolbar.setTitle("我是大标题"); mToolbar.setSubtitle("我是小标题"); mToolbar.setLogo(R.mipmap.ic_launcher); setSupportActionBar(mToolbar); //注意顺序 mToolbar.setNavigationIcon(R.mipmap.ic_launcher_round);
设置菜单
- 重写这个方法
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.toolbar_menu, menu); //加载菜单 return super.onCreateOptionsMenu(menu); }
toolbar_menu.xml
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_search" android:title="Search" android:icon="@mipmap/ic_launcher" app:showAsAction="ifRoom"/> <item android:id="@+id/action_notifications" android:title="notifications" android:icon="@mipmap/ic_launcher" app:showAsAction="ifRoom"/> <item android:id="@+id/action_ications" android:title="notiions" android:icon="@mipmap/ic_launcher" app:showAsAction="ifRoom"/> <item android:id="@+id/action_stings" android:title="sb" android:orderInCategory="100" android:icon="@mipmap/ic_launcher" app:showAsAction="never"/></menu>
设置菜单Item点击事件
@Overridepublic boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { Toast.makeText(this, "你点击了导航图标", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "你点击了标题为 :" + item.getTitle() + " 的菜单", Toast.LENGTH_SHORT).show(); } return super.onOptionsItemSelected(item);}
改变系统默认的三个点的图片
mToolbar.setOverflowIcon(getDrawable(R.mipmap.ic_launcher)); //替换三个点的图片
指定弹出菜单的主题
app:popupTheme="@style/Toolbar.Popup.Theme" <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:background="?attr/colorPrimary" app:popupTheme="@style/Toolbar.Popup.Theme" android:layout_width="match_parent" android:layout_height="wrap_content" />
@style/Toolbar.Popup.Theme<style name="Toolbar.Popup.Theme" parent="@style/ThemeOverlay.AppCompat.Dark"><item name="android:colorBackground">@color/colorPrimary</item><item name="android:textColorPrimary">#000000</item><item name="actionOverflowMenuStyle">@style/Toolbar.Popup.Position.Theme</item></style><style name="Toolbar.Popup.Position.Theme" parent="Widget.AppCompat.Light.PopupMenu.Overflow"><item name="overlapAnchor">false</item> <!--把该属性改为false即可使menu位置位于toolbar之下--></style>
- android:textColorPrimary 指定弹出菜单的字体颜色
- android:colorBackground指定弹出菜单的背景颜色
- actionOverflowMenuStyle 设置弹出菜单的位置主题
暂时整理了这么多,后续会再更新!源码下载地址
阅读全文
0 0
- Toolbar 替换ActionBar(android MD 二)
- 利用Toolbar替换ActionBar
- Android 5.0(L) ToolBar(替代ActionBar) 实战(二)
- Android 5.0(L) ToolBar(替代ActionBar) 实战(二)
- Android开发中怎么把ToolBar替换成ActionBar
- 安卓toolbar,toolbar替换actionbar,改变toolbar箭头颜色
- Android:Material系列:ActionBar-->Toolbar
- Android:Material系列:ActionBar-->Toolbar
- Android toolbar与actionbar区别
- Android UI(ActionBar+Toolbar)详解
- MD风格(ToolBar+Theme)
- Android 5.0(L) ToolBar(替代ActionBar) 实战(一)
- Android 5.0(L) ToolBar(替代ActionBar) 实战(三)
- Android 5.0(L) ToolBar(替代ActionBar) 实战(四)
- Android 5.0(L) ToolBar(替代ActionBar) 实战(一)
- Android 5.0(L) ToolBar(替代ActionBar) 实战(三)
- Android 5.0(L) ToolBar(替代ActionBar) 实战(四)
- Android CollapsingToolbarLayout:将ActionBar载入Toolbar(2)
- 全国行政区划地址数据库
- 面向对象--类
- UCGUI学习之路(4)显示位图
- Mac:fgets的文件坑
- SVN安装和教程
- Toolbar 替换ActionBar(android MD 二)
- MongoDB 导入导出
- 国庆钜惠!买零度无人机+99送原厂背包!
- 科沃斯喜结“良”缘,携手钟汉良倾情代言
- 智城云CEO陈援非:深耕物联网云接入和数据服务市场
- 夺印度市场魁首 金立欲弯道超车
- 表单元素之output元素、度量条、进度条、fieldset、legend元素
- 信息学奥赛一本通(C++版) 第二部分 基础算法 第三章 递推算法
- 新晋OIer的第一篇博客