效果如图:
MainActivity完整代码
package com.example.actionbar_test;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle;
import android.view.*;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SearchView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//更改页面标题
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle("ActionBar测试沉浸式");
//隐藏标题栏
//actionBar.hide();
//显示左侧返回箭头
actionBar.setDisplayHomeAsUpEnabled(true);
//actionBar.setTitle("搜索功能");
//actionBar.setSubtitle("我是搜索功能的副描述文字信息.");
//一、将十六进制颜色值转为int类型color
int color = Color.parseColor("#1E90FF");// 1E90FF 4169E1 fafafa
//二、将int类型color值转为Drawable类型
ColorDrawable drawable = new ColorDrawable(color);
//三、将drawable设置给actionbar
actionBar.setBackgroundDrawable(drawable);
//沉浸式状态栏,导航栏
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//getWindow().setStatusBarColor(getResources().getColor(R.color.colorPrimary));//设置状态栏颜色
getWindow().setStatusBarColor(color);//设置状态栏颜色
getWindow().setNavigationBarColor(color); //设置导航栏颜色
}
}
//菜单的点击事件
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.save:
Toast.makeText(this, "保存", Toast.LENGTH_SHORT).show();
break;
case R.id.setting:
Toast.makeText(this, "设置", Toast.LENGTH_SHORT).show();
break;
case R.id.add:
Toast.makeText(this, "添加", Toast.LENGTH_SHORT).show();
break;
case R.id.about:
Toast.makeText(this, "关于", Toast.LENGTH_SHORT).show();
break;
case R.id.back:
Toast.makeText(this, "退出", Toast.LENGTH_SHORT).show();
finish();
break;
default:super.onOptionsItemSelected(item);
}
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//使用菜单填充器获取menu下的菜单资源文件
getMenuInflater().inflate(R.menu.tool_menu,menu);
MenuItem searchItem=menu.findItem(R.id.search);
//获取搜索的菜单组件
SearchView searchView = (SearchView) searchItem.getActionView();
//添加一个提交按钮
searchView.setSubmitButtonEnabled(true);
//设置默认搜索的文字
//searchView.setQuery("ok", false);
//设置默认搜索提示文字
searchView.setQueryHint("请输入搜索关键字...");
//默认把searchView展开
//searchItem.expandActionView();
//使searView清除焦点,关闭输入法键盘
//searchView.clearFocus();
//设置搜索的响应事件
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
Toast t = Toast.makeText(MainActivity.this, query, Toast.LENGTH_SHORT);
t.setGravity(Gravity.TOP,0,0);
t.show();
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
return super.onCreateOptionsMenu(menu);
}
}
tool_menu布局文件
<?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/search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
android:icon="@drawable/ic_baseline_search_24"
android:title="搜索"
app:showAsAction="always|collapseActionView"/>
<item
android:id="@+id/add"
android:icon="@drawable/ic_baseline_add_circle_outline_24"
android:title="添加"
app:showAsAction="always|collapseActionView"/>
<item
android:title="保存"
android:id="@+id/save"
app:showAsAction="ifRoom"/>
<item
android:title="设置"
android:id="@+id/setting"/>
<item
android:title="更多">
<menu>
<item android:title="退出"
android:id="@+id/back"/>
<item android:title="关于"
android:id="@+id/about"/>/>
</menu>
</item>
</menu>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/139888.html