`
xuanzhui
  • 浏览: 200812 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Android SearchView相关细节

阅读更多

以下所有内容都是针对android.support.v7.widget.SearchView,相比于默认的SearchView拥有更多的可配置性。

 

1. SearchView默认的状态是一个搜索图标,点一下才会展开输入框,如果想默认处于展开状态,可以调用如下方法:

searchView.setIconifiedByDefault(false);

 带来的副作用是此时的SearchView处于 focus 状态,软键盘会自动打开,如果不希望SearchView自动获得焦点,可以调用如下的方法:

searchView.setFocusable(false);
searchView.clearFocus();

 setFocusable(false)在初始化SearchView的时候是必须的

 

2. 获取SearchView输入框

SearchView.SearchAutoComplete searchTextArea = (SearchView.SearchAutoComplete) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);

 之后就可以通过 searchTextArea 对字体、文本等属性进行修改,比如修改字体大小

searchTextArea.setTextSize(TypedValue.COMPLEX_UNIT_SP, 13);

 

3. 获取输入框底部线条

View v = searchView.findViewById(android.support.v7.appcompat.R.id.search_plate);

 如果希望底部线条看不来,可以设置它的背景色和SearchView保持一致,例如:

v.setBackgroundColor(Color.WHITE);

 

4. 模拟iOS圆角和添加取消按钮


 

<LinearLayout
	android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/lightGreyBg">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginTop="6dp"
        android:layout_marginBottom="6dp">

        <android.support.v7.widget.SearchView
            android:id="@+id/searchView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/white_bg_round_radius_4dp"/>

        <TextView
            android:id="@+id/cancelView"
            android:layout_width="45dp"
            android:layout_height="30dp"
            android:text="取消"
            android:textColor="@color/colorPrimary"
            android:textSize="@dimen/font_size_common"
            android:layout_gravity="end"
            android:gravity="center"
            android:visibility="gone"/>
    </FrameLayout>

</LinearLayout>

 再根据输入框是否处于编辑状态动态修改SearchView的margin和取消按钮的可见性

FrameLayout.LayoutParams rightMargin = new FrameLayout.LayoutParams(
        FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
rightMargin.setMarginEnd((int) DisplayUtils.dp2px(this, 45));

FrameLayout.LayoutParams zeroMargin = new FrameLayout.LayoutParams(
        FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
zeroMargin.setMarginEnd(0);

searchView.setOnQueryTextFocusChangeListener((view, hasFocus) -> {
    if (hasFocus) {
        searchView.setLayoutParams(rightMargin);
        cancelView.setVisibility(View.VISIBLE);
    } else {
        searchView.setLayoutParams(zeroMargin);
        cancelView.setVisibility(View.GONE);
    }
});

 同时可以对取消按钮添加监听,通过如下示例恢复SearchView的原始状态

searchTextArea.setText("");
searchView.clearFocus();

 

5. 添加搜索下拉框,同时添加透明蒙版的效果


 在SearchView下添加显示区域

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- 蒙版 -->
    <View
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#80323232"
        />

    <ListView
        android:id="@+id/matchListView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:divider="@null"
        android:background="@android:color/white"/>

</FrameLayout>

 实现SearchView.OnQueryTextListener,在两个方法中动态更新ListView内容

 

 

 

 

 

 

  • 大小: 26.3 KB
  • 大小: 28 KB
分享到:
评论

相关推荐

    自定义searchView

    在本篇中,我们将深入探讨如何自定义`SearchView`,以及与之相关的知识点。 首先,`SearchView`的基本用法是集成到`ActionBar`或`Toolbar`中,通过XML布局或者程序动态添加。在XML布局文件中,可以使用`&lt;android....

    仿58到家searchView跳转动画

    7. **测试与调整**:在多种设备和Android版本上进行测试,根据反馈调整动画速度、持续时间和细节,确保在各种情况下都能提供一致的用户体验。 通过上述技术,开发者可以创造出类似于58到家应用中的独特交互体验,...

    Android使用SearchView+ListView快速实现本地数据快速搜索

    `SearchView`是Android提供的一个用于输入搜索关键词的组件,它通常被用在ActionBar或ToolBar中,可以提供高级的搜索功能,如自动补全、清除输入等。而`ListView`则是一个可以展示多行列表的视图,常用于显示大量...

    android搜索历史记录提示

    1. **监听EditText输入**:使用`addTextChangedListener`监听EditText的文本变化,当用户输入内容时,触发相关处理。 2. **保存搜索记录**:每当监听到文本变化,如果用户输入了新的搜索词,就将其保存到本地。可以...

    SearchView小demo

    在Android开发中,`SearchView`是一个非常重要的组件,它为用户提供了一个搜索界面,可以方便地集成到应用的导航栏或者菜单中,用于实现各种搜索功能。本篇将详细讲解如何利用`SearchView`实现一个小型的搜索示例,...

    Android工具栏顶出转场动画的实现方法实例

    在Android应用开发中,工具栏(Toolbar)是界面设计中的重要组成部分,它可以提供导航和操作功能。Android 5.0(Lollipop)引入了丰富的转场...在实践中,不断调整和优化这些细节,将有助于打造更出色的Android应用。

    android搜索相关代码

    本文将深入探讨Android搜索相关的代码实现,尤其是关键字的飞入飞出动画效果,类似于应用宝等应用中的展示方式。 首先,Android搜索功能的核心是`SearchView`组件,它是一个可扩展的文本框,支持语音搜索、自动补全...

    Android仿简书动态searchview搜索栏效果

    总的来说,实现Android仿简书动态searchview效果主要涉及动画框架的使用、滚动事件监听、布局动态调整和自定义布局等多个方面。通过合理地组合这些技术,可以创造出与简书类似的高大上搜索栏效果。在实际开发中,...

    支持模糊查询Android搜索框

    在Android应用开发中,搜索框(SearchView)是不可或缺的一部分,它允许用户通过输入关键词来查找应用程序中的相关信息。本文将详细解析如何实现一个支持模糊查询的Android搜索框,并结合源码`AndroidSearchView`...

    SearchView:循环显示SearchView

    标题 "SearchView:循环显示SearchView" 涉及的是Android开发中的一个特定组件——SearchView的使用,尤其是在实现搜索视图循环展示效果时的技术细节。SearchView是Android SDK提供的一种用于实现搜索功能的控件,它...

    Android ActionBar应用实战,高仿微信主界面的设计实例完整源码

    在Android中,我们可以通过在布局文件中添加EditText实现搜索栏,并结合`SearchView`组件提供搜索功能。对于Tab栏,我们可以使用`android.support.design.widget.BottomNavigationView`,这是一个自Android Design ...

    Android 仿IOS Segment、搜索框、开关按钮和时间选择.rar

    在Android中,可以使用`SearchView`组件来实现。`SearchView`提供了搜索框、搜索建议、清除按钮等功能,并能与`ActionBar`或`Toolbar`无缝集成。自定义`SearchView`样式,如字体、颜色和图标,可以使其更接近iOS风格...

    android 搜索框

    本篇将深入探讨Android搜索框的使用、配置以及实现细节,结合可运行的代码示例和PPT讲解,帮助开发者更好地理解和应用这一功能。 1. **搜索框组件介绍** Android的SearchView通常在ActionBar或Toolbar中使用,它...

    ToolBarSearchViewHome_soonmcf_project_android_源码.zip

    源码可能包含了如何创建和配置`ToolBar`,如何将`SearchView`整合进`ToolBar`中,以及如何处理用户输入的搜索请求等具体细节。 在Android开发中,`ToolBar`通常通过`AppCompatActivity`的`setSupportActionBar()`...

    android之自定义搜索框

    在Android开发中,自定义搜索...通过调整布局、样式和交互细节,你可以创建出符合自己应用风格的搜索框,提升用户界面的美观度和实用性。在实际项目中,还可以根据需求扩展功能,如添加自动完成、语音搜索等高级特性。

    Node.js-CardView形式的Search搜索框

    标题 "Node.js-CardView形式的Search搜索框" 暗示了我们正在讨论一个结合了Node.js技术和Android开发中的CardView与SearchView组件的应用。在这个场景中,开发者可能正试图在Android应用中创建一个美观且功能丰富的...

    Android代码-Q_Comic

    - **搜索**:使用`EditText`配合`SearchView`实现搜索功能,搜索结果可能通过过滤网络数据或者本地缓存得到。 - **收藏**:当用户点击收藏按钮,相关信息会被存储在数据库中,并可能在主界面的收藏区展示。 5. **...

    Android-Google-QuickSearchBox 4.x 源码

    本文将详细探讨Android-Google-QuickSearchBox 4.x版本的源码,揭示其工作原理和关键实现细节。 首先,QSB的核心功能是快速搜索,这主要依赖于其强大的索引系统。源码中的`com.ss.ss.s`可能指的是`...

    Android搜索框

    在Android应用开发中,搜索框...以上是对"Android搜索框"项目的基本理解和知识点解析,实际的实现细节可能根据项目的具体需求有所不同。通过理解和实践这些知识点,开发者可以创建出功能强大且用户体验良好的搜索功能。

    Android应用源码之安卓仿QQ列表通讯录项目.zip

    在实现这些功能时,开发者可能会用到Android的搜索视图(SearchView)、ListView或RecyclerView的ItemDecoration(用于自定义间隔和边距)以及自定义Comparator或Comparable接口对数据进行排序。 标签中的“Android...

Global site tag (gtag.js) - Google Analytics