Android导航控件之Toolbar
来源:互联网 发布:图书发行软件 编辑:程序博客网 时间:2024/06/04 07:12
简介
Toolbar是在 Android 5.0 开始推出的一个 Material Design 风格的导航控件 用来取代之前的 Actionbar
Toolbar支持:
- 设置导航栏图标
- 设置App的logo
- 支持设置标题和子标题
- 支持添加一个或多个的自定义控件
- 支持Action Menu
实践说明
默认情况下Activity是有一个ActionBar的
如何删除这个ActionBar呢?
首先在styles文件中自定义一个style
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style>
然后在对应Activity清单文件中配置
<activity android:name=".FirstToolbarActivity" android:theme="@style/MyTheme"/>
第一种样式
布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.Toolbar android:id="@+id/tool_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimary" app:navigationIcon="@mipmap/ic_book_list" app:titleTextColor="@color/white" app:theme="@style/CustomToolbarTheme"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_gravity="center" android:text="标题" android:textColor="@android:color/white" android:textSize="16sp"/> </android.support.v7.widget.Toolbar></RelativeLayout>
FirstToolbarActivity.java
package com.zhoujian.toolbar;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.view.MenuItem;import android.view.View;import android.widget.Toast;/** * Created by zhoujian on 2017/3/8. */public class FirstToolbarActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first); initView(); } private void initView() { Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar); // 设置navigation button 点击事件 toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); //设置menu toolbar.inflateMenu(R.menu.menu_item); // 设置溢出菜单的图标 toolbar.setOverflowIcon(getResources().getDrawable(R.mipmap.icon_menu)); // 设置menu item 点击事件 toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()){ case R.id.item_collect: //点击设置 Toast.makeText(FirstToolbarActivity.this, "按钮被点击了", Toast.LENGTH_SHORT).show(); break; case R.id.item_talk: //点击设置 Toast.makeText(FirstToolbarActivity.this, "发起群聊点击了", Toast.LENGTH_SHORT).show(); break; case R.id.item_add: //点击设置 Toast.makeText(FirstToolbarActivity.this, "添加朋友被点击了", Toast.LENGTH_SHORT).show(); break; } return false; } }); }}
显示效果:
第二种样式
布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:toolbar="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.Toolbar android:id="@+id/tool_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimary" toolbar:logo="@mipmap/ic_launcher" toolbar:navigationIcon="@mipmap/ic_book_list" toolbar:subtitle="小标题" toolbar:theme="@style/CustomToolbarTheme" toolbar:title="大标题" toolbar:titleMarginStart="20dp" toolbar:titleTextColor="@color/white"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="50dp" android:text="我的" android:textColor="@color/white" android:textSize="14sp"/> </android.support.v7.widget.Toolbar></RelativeLayout>
SecondToolbarActivity.java
package com.zhoujian.toolbar;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.view.MenuItem;import android.view.View;import android.widget.Toast;/** * Created by zhoujian on 2017/3/8. */public class SecondToolbarActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); initView(); } private void initView() { Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar); // 设置navigation button 点击事件 toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); //设置menu toolbar.inflateMenu(R.menu.menu_item); // 设置溢出菜单的图标 toolbar.setOverflowIcon(getResources().getDrawable(R.mipmap.icon_menu)); // 设置menu item 点击事件 toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()){ case R.id.item_collect: //点击设置 Toast.makeText(SecondToolbarActivity.this, "按钮被点击了", Toast.LENGTH_SHORT).show(); break; case R.id.item_talk: //点击设置 Toast.makeText(SecondToolbarActivity.this, "发起群聊点击了", Toast.LENGTH_SHORT).show(); break; case R.id.item_add: //点击设置 Toast.makeText(SecondToolbarActivity.this, "添加朋友被点击了", Toast.LENGTH_SHORT).show(); break; } return false; } }); }}
显示效果:
第三种样式
布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:toolbar="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.Toolbar android:id="@+id/tool_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimary" toolbar:title="使用实例" toolbar:navigationIcon="@mipmap/ic_book_list" toolbar:titleTextColor="@color/white" toolbar:theme="@style/CustomToolbarTheme"> </android.support.v7.widget.Toolbar></RelativeLayout>
ThirdToolbarActivity.java
package com.zhoujian.toolbar;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.view.MenuItem;import android.view.View;import android.widget.Toast;/** * Created by zhoujian on 2017/3/8. */public class ThirdToolbarActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_third); initView(); } private void initView() { Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar); // 设置navigation button 点击事件 toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); //设置 Toolbar menu toolbar.inflateMenu(R.menu.toolbar_menu); // 设置溢出菜单的图标 toolbar.setOverflowIcon(getResources().getDrawable(R.mipmap.icon_menu)); // 设置menu item 点击事件 toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()){ case R.id.publish: //点击设置 Toast.makeText(ThirdToolbarActivity.this, "发布按钮被点击了", Toast.LENGTH_SHORT).show(); break; } return false; } }); }}
显示效果:
第四种样式
布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:toolbar="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.Toolbar android:id="@+id/tool_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimary" toolbar:navigationIcon="@mipmap/ic_book_list" toolbar:theme="@style/CustomToolbarTheme" toolbar:titleTextColor="@color/white"> <EditText android:id="@+id/edit_search" android:layout_width="match_parent" android:layout_height="match_parent" android:textColor="@color/white"/> </android.support.v7.widget.Toolbar></RelativeLayout>
FourthToolbarActivity.java
package com.zhoujian.toolbar;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.view.MenuItem;import android.view.View;import android.widget.Toast;/** * Created by zhoujian on 2017/3/8. */public class FourthToolbarActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_four); initView(); } private void initView() { Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar); // 设置navigation button点击事件 toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); //设置menu toolbar.inflateMenu(R.menu.menu_search); // 设置溢出菜单的图标 toolbar.setOverflowIcon(getResources().getDrawable(R.mipmap.icon_menu)); // 设置menu item 点击事件 toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()){ case R.id.item_search: //点击设置 Toast.makeText(FourthToolbarActivity.this, "搜索按钮被点击了", Toast.LENGTH_SHORT).show(); break; } return false; } }); }}
显示效果:
源码下载
源码下载:https://github.com/zeke123/Toolbar
0 0
- Android导航控件之Toolbar
- Android控件之Toolbar + DrawerLayout的使用
- android MD新控件之toolbar
- Android 打造风格统一的导航之v7 ToolBar
- Android之官方导航栏之Toolbar(Toolbar+DrawerLayout+ViewPager+PagerSlidingTabStrip)
- Android 5.x新增控件之-Toolbar控件
- android--UI--导航条toolbar
- Android 最新控件 Toolbar
- android控件10---ToolBar
- android 控件 隐藏toolbar-(CoordinatorLayout Toolbar AppbarLayout)
- android 控件 toolbar BaseActivity集成toolbar
- android新控件之toolbar,floatingActionButton,SnackBar,CollapsingToolbarLayout
- android之Toolbar取消子控件左边留白
- MFC控件篇之ToolBar
- WPF控件库之Toolbar
- Material Design控件之Toolbar
- 关于android客户端的导航栏(toolbar)
- android support v7 Toolbar控件
- java集合类概略
- SDUT 2615 传纸条 栈
- Android 显示usb连接图标
- windows安装eclipse/paho.mqtt.golang
- c++常见笔试题(4)
- Android导航控件之Toolbar
- poj 1703 并查集解决分组问题
- Nanopi2之eclipse编译matrix-LED
- 使用 Rx 中预定义的 Subject
- linux常用查看命令
- 可拖拽的弹性碰撞小球
- STM32的IO输入与输出
- 在C++中,什么时候必须使用引用
- 蓝桥杯之贪心 Huffuman