以下所有内容都是针对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内容
相关推荐
在本篇中,我们将深入探讨如何自定义`SearchView`,以及与之相关的知识点。 首先,`SearchView`的基本用法是集成到`ActionBar`或`Toolbar`中,通过XML布局或者程序动态添加。在XML布局文件中,可以使用`<android....
7. **测试与调整**:在多种设备和Android版本上进行测试,根据反馈调整动画速度、持续时间和细节,确保在各种情况下都能提供一致的用户体验。 通过上述技术,开发者可以创造出类似于58到家应用中的独特交互体验,...
`SearchView`是Android提供的一个用于输入搜索关键词的组件,它通常被用在ActionBar或ToolBar中,可以提供高级的搜索功能,如自动补全、清除输入等。而`ListView`则是一个可以展示多行列表的视图,常用于显示大量...
1. **监听EditText输入**:使用`addTextChangedListener`监听EditText的文本变化,当用户输入内容时,触发相关处理。 2. **保存搜索记录**:每当监听到文本变化,如果用户输入了新的搜索词,就将其保存到本地。可以...
在Android开发中,`SearchView`是一个非常重要的组件,它为用户提供了一个搜索界面,可以方便地集成到应用的导航栏或者菜单中,用于实现各种搜索功能。本篇将详细讲解如何利用`SearchView`实现一个小型的搜索示例,...
在Android应用开发中,工具栏(Toolbar)是界面设计中的重要组成部分,它可以提供导航和操作功能。Android 5.0(Lollipop)引入了丰富的转场...在实践中,不断调整和优化这些细节,将有助于打造更出色的Android应用。
本文将深入探讨Android搜索相关的代码实现,尤其是关键字的飞入飞出动画效果,类似于应用宝等应用中的展示方式。 首先,Android搜索功能的核心是`SearchView`组件,它是一个可扩展的文本框,支持语音搜索、自动补全...
总的来说,实现Android仿简书动态searchview效果主要涉及动画框架的使用、滚动事件监听、布局动态调整和自定义布局等多个方面。通过合理地组合这些技术,可以创造出与简书类似的高大上搜索栏效果。在实际开发中,...
在Android应用开发中,搜索框(SearchView)是不可或缺的一部分,它允许用户通过输入关键词来查找应用程序中的相关信息。本文将详细解析如何实现一个支持模糊查询的Android搜索框,并结合源码`AndroidSearchView`...
标题 "SearchView:循环显示SearchView" 涉及的是Android开发中的一个特定组件——SearchView的使用,尤其是在实现搜索视图循环展示效果时的技术细节。SearchView是Android SDK提供的一种用于实现搜索功能的控件,它...
在Android中,我们可以通过在布局文件中添加EditText实现搜索栏,并结合`SearchView`组件提供搜索功能。对于Tab栏,我们可以使用`android.support.design.widget.BottomNavigationView`,这是一个自Android Design ...
在Android中,可以使用`SearchView`组件来实现。`SearchView`提供了搜索框、搜索建议、清除按钮等功能,并能与`ActionBar`或`Toolbar`无缝集成。自定义`SearchView`样式,如字体、颜色和图标,可以使其更接近iOS风格...
本篇将深入探讨Android搜索框的使用、配置以及实现细节,结合可运行的代码示例和PPT讲解,帮助开发者更好地理解和应用这一功能。 1. **搜索框组件介绍** Android的SearchView通常在ActionBar或Toolbar中使用,它...
源码可能包含了如何创建和配置`ToolBar`,如何将`SearchView`整合进`ToolBar`中,以及如何处理用户输入的搜索请求等具体细节。 在Android开发中,`ToolBar`通常通过`AppCompatActivity`的`setSupportActionBar()`...
在Android开发中,自定义搜索...通过调整布局、样式和交互细节,你可以创建出符合自己应用风格的搜索框,提升用户界面的美观度和实用性。在实际项目中,还可以根据需求扩展功能,如添加自动完成、语音搜索等高级特性。
标题 "Node.js-CardView形式的Search搜索框" 暗示了我们正在讨论一个结合了Node.js技术和Android开发中的CardView与SearchView组件的应用。在这个场景中,开发者可能正试图在Android应用中创建一个美观且功能丰富的...
- **搜索**:使用`EditText`配合`SearchView`实现搜索功能,搜索结果可能通过过滤网络数据或者本地缓存得到。 - **收藏**:当用户点击收藏按钮,相关信息会被存储在数据库中,并可能在主界面的收藏区展示。 5. **...
本文将详细探讨Android-Google-QuickSearchBox 4.x版本的源码,揭示其工作原理和关键实现细节。 首先,QSB的核心功能是快速搜索,这主要依赖于其强大的索引系统。源码中的`com.ss.ss.s`可能指的是`...
在Android应用开发中,搜索框...以上是对"Android搜索框"项目的基本理解和知识点解析,实际的实现细节可能根据项目的具体需求有所不同。通过理解和实践这些知识点,开发者可以创建出功能强大且用户体验良好的搜索功能。
在实现这些功能时,开发者可能会用到Android的搜索视图(SearchView)、ListView或RecyclerView的ItemDecoration(用于自定义间隔和边距)以及自定义Comparator或Comparable接口对数据进行排序。 标签中的“Android...