[置顶] android.support.v7.widget.SearchView开发记录(一)
2016-05-31 20:13
597 查看
android.support.v7.widget.SearchView开发记录(一)
问题列表
SearchView焦点问题
mSearchView.clearFocus();
SearchView展开状态
mSearchView.setIconified(false)
SearchView获取输入框:SearchView.SearchAutoComplete
mEdit = (SearchView.SearchAutoComplete) mSearchView.findViewById(R.id.search_src_text)
SearchView 查询图标默认位于编辑框内
mSearchView.setIconifiedByDefault(false);
SearchView修改样式
找到V7包下关于SearchView 资源布局文件,根据id来取得相关子View控件,然后设置子View的样式;关于设置自定义样式,主要是关于Shape,Laylist,Selector的设置 mEdit = (SearchView.SearchAutoComplete) mSearchView.findViewById(R.id.search_src_text);
关键代码
menu 布局文件:<item android:id="@+id/action_search" android:icon="@mipmap/icon_search" app:actionViewClass="android.support.v7.widget.SearchView" android:title="@string/menu_find" app:showAsAction="ifRoom" />
activity 关键代码:
SearchView.SearchAutoComplete mEdit; @Override public boolean onCreateOptionsMenu(Menu menu) { Log.i(TAG, "MainSearchActivity:onCreateOptionsMenu:140:" + "onCreateOptionsMenu()"); getMenuInflater().inflate(R.menu.menu_search, menu); final MenuItem item = menu.findItem(R.id.action_search); mSearchView = (SearchView) MenuItemCompat.getActionView(item); mSearchView.setIconifiedByDefault(false); mEdit = (SearchView.SearchAutoComplete) mSearchView.findViewById(R.id.search_src_text); mEdit.setText(value); mEdit.setSelection(value.length()); mSearchView.setQueryHint("输入您感兴趣的..."); final LinearLayout search_edit_frame= (LinearLayout) mSearchView.findViewById(R.id.search_edit_frame); search_edit_frame.setBackgroundResource(R.drawable.shape_from_edit); search_edit_frame.setClickable(true); mEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { search_edit_frame.setPressed(hasFocus); } }); mEdit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { search_edit_frame.setPressed(true); } }); mEdit.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { /*判断是否是“GO”键*/ if (actionId == EditorInfo.IME_ACTION_SEARCH) { /*隐藏软键盘*/ mSearchView.clearFocus(); search_edit_frame.setPressed(false); KeyBoardUtils.closeKeybord(mEdit, ct); //清空 if (!StringUtils.isEmpty(v.getText().toString())) { contentlists.clear(); value = v.getText().toString(); page = 1; resqustData(page); } return true; } return false; } }); return true; }
原文点击
android.support.v7.widget.SearchView开发记录(一)相关文章推荐
- Android - 文件读写操作 总结
- Android动画用到的基本的属性和学习笔记
- Android 通过代码发送点击事件
- Android PopupWindow的使用和分析
- android之PendingIntent的使用
- Android4.4-Launcher源码分析系列之关键的类和接口之DragLayer
- Android应用插件式开发解决方法
- android studio 导入项目作为主工程依赖库
- Android Libraries
- Android Studio 2.0下创建jni应用调用本地C函数
- Android 打造突出的导航栏
- Android如何在代码中获取attr属性的值
- Android开发学习之路-提升用户体验小技巧
- RK3288 Android4.4 获取 root权限
- 使用AlertDialog时发生了空指针异常
- 关于android自定义键盘
- android中异步任务AsyncTask的应用和工作原理
- android学习笔记--activity生命周期
- android 快速点击两次出现两个重复界面
- AsyncTask和Handler两种异步方式的实现和区别比较