Android中MaterialSearchView(搜索框)的简单实用

收搜框架有好多,动画效果满炫酷的就是代码太多,没发抽取他的搜索功能,而这个却比较好用些,直接从代码里面抠出来一个简单实现搜索功能一句话就是简单。

1.添加依赖

implementation’com.miguelcatalan:materialsearchview:1.4.0’

2.写布局

 <FrameLayout            android:layout_width="match_parent"            android:layout_height="wrap_content">            <android.support.v7.widget.Toolbar                android:id="@+id/toolbar"                style="@style/AppTheme"                android:layout_width="match_parent"                android:layout_height="?attr/actionBarSize"                android:background="@color/colorPrimary"                android:clipToPadding="true"                android:fitsSystemWindows="true">            android.support.v7.widget.Toolbar>            <com.miguelcatalan.materialsearchview.MaterialSearchView                android:id="@+id/search_view"                android:layout_width="match_parent"                android:layout_height="wrap_content" />        FrameLayout>

3.menu:

 <item        android:id="@+id/action_search"        android:icon="@drawable/ic_action_action_search"        android:orderInCategory="100"        android:title="@string/abc_search_hint"        app:showAsAction="always" />

4.java代码:

        //是否语言搜索        mSearchView.setVoiceSearch(false);//        设置光标可移动        mSearchView.setCursorDrawable(R.drawable.color_cursor_white);        //设置收索提示//        mSearchView.setSuggestions(getResources().getStringArray(R.array.query_suggestions));//        设置为查询文本侦听器        mSearchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() {            @Override            public boolean onQueryTextSubmit(String query) {                //这把外面用EventBus分别发送消息刷新                MEvent mEvent = new MEvent();                if (istow){                    mEvent.tow=query;                    EventBus.getDefault().post(mEvent);                }                if (istree){                    mEvent.tree=query;                    EventBus.getDefault().post(mEvent);                }                Snackbar.make(findViewById(R.id.container), "Query: " + query, Snackbar.LENGTH_LONG)                        .show();                return false ;            }            @Override            public boolean onQueryTextChange(String newText) {                return false;            }        });        //设置搜索视图监听器        mSearchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener() {            @Override            public void onSearchViewShown() {            }            @Override            public void onSearchViewClosed() {            }        });        //设置提示列表点击事件        mSearchView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                Toast.makeText(MainActivity.this, "第" + position + "行", Toast.LENGTH_LONG).show();            }        });    }//收索框那个图标    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.menu_main, menu);        MenuItem item = menu.findItem(R.id.action_search);        item.setVisible(false);        mSearchView.setMenuItem(item);        mSearchMenuItem = item;        return true;    }

加一个回退,按Back键时取消收索

  @Override    public void onBackPressed() {        if (mSearchView.isSearchOpen()) {            mSearchView.closeSearch();        } else {//            showExitDialog();            super.onBackPressed();        }    }

差不多也就是这么多适合新手的简单收索框,如果您是大神可以自定义view画一个搜索框,仅供参考.

更多相关文章

  1. 手动从Eclipse移植Android项目到Android(安卓)Studio记录
  2. Android(安卓)华为手机音频设置播放倍速mMediaPlayer.getPlaybac
  3. android-编译
  4. WebView!!!!日记~~
  5. Android手机控制流量那几招
  6. Android(安卓)单元测试之UI测试
  7. 《android第一行代码,第二版》学习笔记(一)
  8. Android(安卓)Service详解(三) AIDL使用解析
  9. 《第一行代码Android》学习总结第二章 Activity创建与相关设置

随机推荐

  1. Android Service BroadcastReceiver And
  2. virtualbox+Android x86安装Xposed
  3. Android LockScreen (锁屏弹窗)
  4. ListView----Adapter的使用
  5. 解决VS2015安装Android(安卓)SDK 后文件
  6. Android开发指南-用户界面-创建菜单
  7. android > 反编译
  8. Android中View转换为Bitmap及getDrawingC
  9. 用旧弃的Android智能手机变为电脑WIFI摄
  10. Android自学笔记:Android2.3源码下载(针对W