在ActionBar上添加搜索View

在ActionBar上添加搜索View

Step1:在Manifests.xml文件中修改属性android:theme:设置深灰色背景的ActionBar

android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
//设置深灰色背景的ActionBar

Step2:在res目录下新建menu目录,menu目录下新建menu resource file:menu.xml

<?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"
    	android:title="搜索"
    	app:showAsAction="always"
   	 app:actionViewClass="android.widget.SearchView" />
</menu>

Step3:在MainActivity的onCreate方法里设置隐藏ActionBar上的显示标题:

getSupportActionBar().setDisplayShowTitleEnabled(false);

Step4:重写onCreateOptionsMenu方法,实例化一个MenuInflater对象,并通过该对象的inflate()方法来解析菜单资源文件menu.xml。

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getSupportActionBar().setDisplayShowTitleEnabled(false); //隐藏ActionBar上的显示标题
}

//解析菜单资源文件
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();  //实例化一个MenuInflater对象
    inflater.inflate(R.menu.menu,menu);  //解析菜单资源文件
    return super.onCreateOptionsMenu(menu);
}

}

运行结果:ActionBar变成了深灰色背景且显示标题被隐藏,在ActionBar上出现了放大镜图标,点击图标后出现了搜索输入框。

点击图标前
点击图标后

发布了20 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/BLU_111/article/details/103181119