阅读量:2
要实现Android顶部搜索框,可以使用Toolbar和SearchView组件。
首先,在你的布局文件中添加一个Toolbar组件作为顶部导航栏:
<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/colorPrimary" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
然后,在你的Activity中找到Toolbar并设置为ActionBar:
Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar);
接下来,在 onCreateOptionsMenu 方法中加载菜单文件,并设置搜索框的监听器:
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); searchView.setMaxWidth(Integer.MAX_VALUE); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { // 处理搜索提交事件 return false; } @Override public boolean onQueryTextChange(String newText) { // 处理搜索文本变化事件 return false; } }); return true; }
最后,在菜单文件中定义搜索框的样式和行为:
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_search" android:title="Search" android:icon="@drawable/ic_search" android:showAsAction="ifRoom|collapseActionView" android:actionViewClass="android.support.v7.widget.SearchView" /> </menu>
这样,你就可以在Android顶部导航栏中实现一个搜索框了。你可以根据需要进一步进行自定义和调整。