zoukankan      html  css  js  c++  java
  • Android SearchView设置与用法的那点事儿


    // 设置该SearchView默认是否自动缩小为图标
    mSearchView.setIconifiedByDefault(false);
    // 为该SearchView组件设置事件监听器
    mSearchView.setOnQueryTextListener(this);
    // 设置该SearchView显示确认搜索按钮
    mSearchView.setSubmitButtonEnabled(true);
    // 设置该SearchView内默认显示的提示文本
    mSearchView.setQueryHint("查找");
    //设置
    mSearchView.setIconified(false);
    //清除焦点
    mSearchView.clearFocus();
    //获取焦点
    mSearchView.requestFocus();

    EditText默认自动获取焦点的,会弹出软键盘

    下面是关闭SearchView自动获取焦点的代码

    <span style="font-size:14px;"><span style="font-size:14px;"> <LinearLayout
                android:id="@+id/focus"
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:background="#EAEAEA"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:gravity="center_vertical"
                android:orientation="horizontal" >
    
                <SearchView
                    android:id="@+id/searchView"
                    android:layout_width="fill_parent"
                    android:layout_height="40dp"
                    android:layout_marginRight="20dp"
                    android:gravity="left|center_vertical"
                    android:iconifiedByDefault="false"
                    android:inputType="textFilter"
                    android:queryHint="输入IP"
                    android:textColor="#ABABAB"
                    android:textColorHint="#ABABAB" />
    
     </LinearLayout></span></span>

    只需要在SearchView的父级控件中添加以下属性:

    <span style="font-size:14px;"><span style="font-size:14px;">android:focusable="true"
    android:focusableInTouchMode="true"</span></span>

    就在进入的时候不会自动获取焦点

    但是当你点击SearchView获取焦点后,到别的activity再回来的时候,失效了,总是自动获取焦点并且弹出软键盘

    这里有个办法就是在onResume方法里添加以下代码

    <span style="font-size:14px;"><span style="font-size:14px;">@Override
    protected void onResume() {
    super.onResume();
    mSearchView.setFocusable(true);
    mSearchView.setFocusableInTouchMode(true);
    //mSearchView.requestFocus();  //获取焦点
    }</span></span>

    回到这个activity会执行onResume方法,让它执行上面的代码,就不再会自动获取焦点了。

    关注公众号,分享干货,讨论技术



  • 相关阅读:
    wex5 实战 框架拓展之2 事件派发与data刷新
    wex5 实战 框架拓展之1 公共data组件(Data)
    wex5 实战 HeidiSQL 导入Excel数据
    wex5 实战 手指触屏插件 hammer的集成与优劣
    wex5 实战 登陆帐号更换与用户id一致性
    wex5 实战 用户点评与提交设计技巧
    wex5 实战 省市县三级联动与地址薄同步
    wex5 实战 wex5与js的组件关系与执行顺序(父子与先后)
    wex5 实战 单页模式下的多页面数据同步
    [BZOJ]4237: 稻草人
  • 原文地址:https://www.cnblogs.com/molashaonian/p/9097669.html
Copyright © 2011-2022 走看看