<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; } }