8/16
ActionBar:导航栏,是Activity顶端的一块区域
1.获取ActionBar
ActionBar actionBar = getSupportActionBar(); //获取ActionBar
2.隐藏ActionBar
ActionBar actionBar = getSupportActionBar(); //获取ActionBar
actionBar.hide(); //隐藏ActionBar
3.设置标题
actionBar.setTitle("欢迎使用"); //设置标题
4.显示左侧返回箭头
actionBar.setDisplayHomeAsUpEnabled(true);
//在ActionBar最左边显示返回箭头按钮,一般写在onCreate或者onStart方法
//ActionBar返回按钮的功能在onOptionsItemSelected()中触发
@Override public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch ( item.getItemId() ) {
case android.R.id.home://系统指定的id(返回按钮)
finish();
}
return super.onOptionsItemSelected(item);
}
5.设置ActionBar的LOGO[LOGO图片尺寸要小一点]
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setLogo( R.drawable.logo);
actionBar.setDisplayUseLogoEnabled(true);
6.ActionBar结合选项菜单实现显示按钮
a.普通响应点击事件的按钮
为选项菜单设置showAsAction:always,此时的选项就会显示在ActionBar上,而不在选项菜单(三个点的按钮)里,同时设置选项的icon属性,引用资源文件来作为按钮的图标
showAsAction :always | withText
横屏时(空间大时)才显示标题
b.查询按钮[显示为放大镜图案的搜索图标]
本质上也是查询菜单项,在选项菜单的菜单资源文件中加入以下代码即可
<item
android:id = "@+id/menu_search"
android:title = "搜索"
app:actionViewClass = "android.widget.SearchView"
app:showAsAction = "always"
/>
app:actionViewClass = “android.widget.SearchView”
按钮显示为搜索组件
查询按钮响应事件的处理代码↓
(在选项菜单的onCreateOptionsMenu方法中)
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu,menu);
MenuItem menuItem = menu.findItem( R.id.menu_search );//找到MenuItem中的SearchView
SearchView searchView = (SearchView) menuItem.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override public boolean onQueryTextSubmit(String s) {
Toast.makeText(MyActivity.this, s, Toast.LENGTH_SHORT).show();
return false;
}
@Override public boolean onQueryTextChange(String s) {
return false;
}
});//SearchView添加查询监听器
return super.onCreateOptionsMenu(menu);
}
onQueryTextSubmit方法:查询信息提交时触发,参数s为输入的查询信息
onQueryTextChange方法:查询信息修改时触发
跳转百度实现查询
public boolean onQueryTextSubmit(String s) {
Intent intent = new Intent();
intent.setAction( Intent.ACTION_VIEW );
intent.setData( Uri.parse("https://www.baidu.com/s?wd="+s) );
startActivity( intent );return false;
}