SearchView是在
android.support.v7.widget.SearchView
主要用来做页面的搜索,可以用来实现点击搜索按钮在同页面做搜索,从而不跳转到新页面做搜索。
当然以上的功能需求需要具体实现,我在此记录一下实现过程。先看一下效果图(用的云信的demo)
接下来说一下实现步骤:
在界面上加入搜索按钮,这里用toolbar的onCreateOptionsMenu形式
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/search_btn" android:icon="@drawable/action_bar_search_view_icon" android:title="" app:showAsAction="always"/>当点击搜索按钮的时候,跳转到有searchview的activity
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
> <item android:id="@+id/action_search" android:icon="@drawable/nim_actionbar_search_dark_icon" android:title="@string/search" app:showAsAction="collapseActionView" app:actionViewClass="android.support.v7.widget.SearchView"/> </menu>
把该activity的主题设置为:
<!-- 搜索界面主题 --> <style name="global_search_bg" parent="@style/AppTheme"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="android:windowBackground">@color/global_bg</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@style/animation_translucent_translate</item> </style>去除activity切换动画
<style name="animation_translucent_translate" parent="@android:style/Animation.Translucent"> <item name="android:windowEnterAnimation">@null</item> <item name="android:windowExitAnimation">@null</item> <item name="android:windowShowAnimation">@null</item> <item name="android:windowHideAnimation">@null</item> </style>这样,一个看似在同一页面的搜索就大致完成了。