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

第一种:将actionbar替换为toolbar

/**
* 1.在布局文件中添加ToolBar控件
* 2.在styles.xml文件中隐藏ActionBar
* 3.在Activity中查找ToolBar,并给Toolbar设置属性,最后,用ToolBar代替ActionBar
*/
public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar);
//设置标题
toolbar.setTitle("Title");
//设置二级标题
toolbar.setSubtitle("二级标题");
//设置导航图标
// toolbar.setNavigationIcon(R.drawable.abg);
// toolbar.setLogo(R.drawable.abg);
//将ToolBar当作ActionBar来使用
setSupportActionBar(toolbar);
//显示导航按钮,这行代码一定要放在setSupportActionBar(toolbar);之后执行
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Toast.makeText(MainActivity.this, "home", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
}

2.将toolbar当作普通控件使用

public class MainActivity extends AppCompatActivity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar);
toolbar.setTitle("Title");
toolbar.setSubtitle("SubTitle");
//加载菜单文件到ToolBar上
toolbar.inflateMenu(R.menu.main);
//设置菜单项的点击事件
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu1:
Toast.makeText(MainActivity.this, "menu1", Toast.LENGTH_SHORT).show();
break;
}
return true;
}
});
}
}

三.分享和搜索

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/share"
android:title="share"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
app:showAsAction="always"/>
<item
android:id="@+id/search"
android:title="search"
app:showAsAction="always"
app:actionViewClass="android.support.v7.widget.SearchView"/>
</menu>
public class MainActivity extends AppCompatActivity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
/**************************处理分享控件**************************/
//获得分享item
MenuItem shareItem = menu.findItem(R.id.share);
//获得ShareActionProvider
ShareActionProvider shareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);
//设置要分享的数据
shareActionProvider.setShareIntent(getShareIntent());
/*******************************处理搜索控件*************************************/
SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
//提交搜索 文本时触发
@Override
public boolean onQueryTextSubmit(String query) {
Log.d("lenve", "onQueryTextSubmit: " + query);
return true;
} //搜索文本改变时触发
@Override
public boolean onQueryTextChange(String newText) {
Log.d("lenve", "onQueryTextChange: " + newText);
return true;
}
});
return super.onCreateOptionsMenu(menu);
} private Intent getShareIntent() {
Intent intent = new Intent();
//设置要分享的数据
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
.getAbsolutePath() + File.separator + "p2.png"));
//设置数据类型
intent.setType("image/*");
return intent;
}
}

最新文章

  1. spring mvc文件上传
  2. 【原创】Kakfa message包源代码分析
  3. NetBeans使用习惯:升级与保存配置
  4. Dynamics CRM 2013 SP1 升级到Dynamics CRM 2015
  5. Asp.net mvc5 系列笔记
  6. 如何解决grails2.3.2中不能运行fork模式
  7. C#中窗体的互相访问
  8. VS2012与NUnit
  9. javascript实现URL不缓存的方法
  10. Windows下查询进程、端口
  11. solr源码导入eclipse
  12. C3p0实践
  13. HDU 1081 To The Max(动态规划)
  14. 云计算之阿里仓库停止openstack mitaka源报错“No package centos-release-openstack-mitaka available.”
  15. 2019-04-22-day037-数据库的安装
  16. AITP
  17. yum-内网yum源服务器配置(CentOS6.5)
  18. shiro自定义realm支持MD5算法认证(六)
  19. metasploit常用服务扫描和利用模块
  20. Python pandas快速入门

热门文章

  1. motto4
  2. dedecms如何自定义专题模板
  3. [Effective JavaScript 笔记]第47条:绝不要在Object.prototype中增加可枚举的属性
  4. 解决Yum安装依赖问题
  5. 通过rails console执行sql语句
  6. [codeforces 528]B. Clique Problem
  7. [Educational Codeforces Round 16]C. Magic Odd Square
  8. Shell脚本中cd命令使用
  9. linux ls正则表达式
  10. 【SpringMVC】SpringMVC系列6之@CookieValue 映射请求Cookie 值