关闭

[置顶] android.support.v7.widget.SearchView开发记录(一)

标签: SearchViewv7android
4983人阅读 评论(3) 收藏 举报

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;
}

原文点击

0
0
查看评论

v7.widget.SearchView的使用

earchView出来已经相当久了,现在才拿出来讲,确实感觉有点跟不上时代的脚步,不管了,就当是给自己做个备份,忘记的时候还可以用来参考! 顺便说一下最近的糟糕情况,好像…自从…五一假期过后,就一直没好好工作,更没有好好学习,生活也没有规律,小说、游戏、熬夜…现在回想下真的很恐怖,为什么我会颓...
  • YY007H
  • YY007H
  • 2015-12-01 14:48
  • 1682

v7.widget.SearchView的使用

SearchView出来已经相当久了,现在才拿出来讲,确实感觉有点跟不上时代的脚步,不管了,就当是给自己做个备份,忘记的时候还可以用来参考!顺便说一下最近的糟糕情况,好像…自从…五一假期过后,就一直没好好工作,更没有好好学习,生活也没有规律,小说、游戏、熬夜…现在回想下真的很恐怖,为什么我会颓废一个...
  • jxxfzgy
  • jxxfzgy
  • 2015-05-27 23:16
  • 15488

android.support.v7.widget.SearchView搜索功能实现

SearchView简介 SearchView是Android原生的搜索框控件,它提供了一个用户界面,用于用户搜索查询。  SearchView默认是展示一个search的icon,点击icon展开搜索框,如果你想让搜索框默认就展开,可以通过setIconifiedByDefa...
  • qq_38583131
  • qq_38583131
  • 2018-01-08 22:52
  • 36

MaterialDesign学习篇(五),使用SearchView的正确姿势

介绍大多APP都具有搜索功能,但是大部分都是在标题栏中放置搜索的图标或者是不可输入的EditText,当点击的时候,开启另外一个界面进行搜索,但是网易云音乐在搜索本地音乐的时候,点击搜索按钮,就会出现输入框,点击返回时,又会再次收起,以前认为需要自己根据状态做布局的改变,最后发现原来有一个很方便好用...
  • Chay_Chan
  • Chay_Chan
  • 2017-08-01 10:48
  • 895

加载SearchvView碰到的问题Couldn't resolve resource @id/search_edit_frame

第一次使用SearchView就遇到了一个小坑XLM文件是这样写的 <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android...
  • likai_rabbit
  • likai_rabbit
  • 2017-02-24 09:44
  • 728

android v7.widget.SearchView的使用

我们的项目中很多的搜索功能都是通过SearchView来实现的,因为这个控件给我们封装了很多功能,也正因为这个,SearchView很多样式不好控制,比如输入框的背景图片,输入框的字体颜色等等!不过如果看过源码的朋友就能轻松实现这些。ok,来看下SearchView的使用步骤1、定义 menu.x...
  • chen920629
  • chen920629
  • 2016-11-25 00:11
  • 2011

MaterialDesign之SearchView全面解锁

一、简述 SearchView是v7包中的一个兼容性控件,它可以单独使用,也可以配合menu+toolbar一起使用。本文将使用第二种方式,对SearchView进行探索。最后将通过代码实战,实现 “仿网易云音乐本地音乐搜索” 效果,带你全面解锁SearchView的UI定制及查询功能的实现。 ...
  • lylodyf
  • lylodyf
  • 2017-06-16 09:39
  • 1202

android.support.v7.widget.Toolbar 详解

我们都知道android 3.0以后google官方推出了ActionBar的工具栏控件,但是虽然是官方的东西,却存在着不少的限制如,无法定制文字或者控制图片间距之类,不过现在我们已经看到曙光在招手了,2014年的IO大会上google推荐了让android开发者眼前一亮的Material des...
  • javazejian
  • javazejian
  • 2016-01-03 18:46
  • 21943

android.support.v7.widget.AppCompatTextView cannot be cast to android.app.Activity

在使用ButterKnife的时候,有时候会出现 类似标题中的错误,错误的原因还是因为自己不小心啊,绑定控件的时候绑定错了 @BindView(R.id.btn) TextView btn; @BindView(R.id.textView) Button textView;...
  • leilifengxingmw
  • leilifengxingmw
  • 2016-08-21 11:09
  • 5578

android searchview默认展开状态

android:iconifiedByDefault="false"只有这一个属性
  • VcStrong
  • VcStrong
  • 2016-07-01 11:37
  • 4657
    个人资料
    • 访问:321636次
    • 积分:4553
    • 等级:
    • 排名:第7748名
    • 原创:121篇
    • 转载:150篇
    • 译文:0篇
    • 评论:25条
    我的联系方式

      Android实战开发


      Android 优秀项目推荐,开发经验分享,欢迎扫一扫。



      QQ群:Android实战开发

      151909524 【需答问题】

    赞助支持

      小额捐助


      您觉得我的文章对您有帮助,请随心而赏,重在分享,共同学习进步,谢谢多多支持!

       支付宝




       微信支付


    在线音乐