Android开发:AS开发搜索栏并自定义SearchView控件
- 目前市面上app的设计,基本上少不了搜索栏的创建,接下来我来介绍我学习的两种方式。
1、自带SearchView控件实现
....
<android.support.v7.widget.SearchView
android:id="@+id/searchEdit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/search_selector"
android:queryHint="输入视频">
</android.support.v7.widget.SearchView>
....
....
<SearchView
android:id="@+id/searchView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:iconifiedByDefault="false"
android:queryHint="请输入搜索内容" />
....
2、自定义SearchView控件
- 圆形框Shape定义,search_layout_bg.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:shape="rectangle">
<solid android:color="@null" />
<corners android:radius="15dip"/>
<stroke android:width="1sp"
android:color="#BFBFBF"/>
<!--定位-->
<padding
android:bottom="2dp"
android:left="8dp"
android:right="8dp"
android:top="2dp" />
<!--圆角-->
<!--<corners-->
<!--android:bottomLeftRadius="1dp"-->
<!--android:bottomRightRadius="0dp"-->
<!--android:topLeftRadius="0dp"-->
<!--android:topRightRadius="0dp" />-->
</shape>
- 主布局(activity_main.xml)文件:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="35dp"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:background="@drawable/search_layout_bg">
<ImageButton
android:layout_width="20dp"
android:layout_height="20dp"
android:id="@+id/imb_search_search"
android:layout_marginLeft="15dp"
android:scaleType="centerInside"
android:src="@drawable/im_search_gray"
android:background="#F0F0F0" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="15dp"
android:id="@+id/et_search_text"
android:layout_weight="1"
android:lines="1"
android:textSize="14sp"
android:background="@null"
android:hint="请输入搜索内容"/>
<ImageButton
android:layout_width="35dp"
android:layout_height="35dp"
android:padding="12.5dp"
android:id="@+id/imb_search_clear"
android:layout_marginRight="20dp"
android:src="@drawable/im_x"
android:visibility="gone"
android:scaleType="centerInside"
android:background="#F0F0F0" />
</LinearLayout>
3、解决问题
- 打开App自动弹出输入法键盘:
在EditText外层任一布局加上
android:focusable=“true”
android:focusableInTouchMode=“true”
你也可以直接加在xml的根布局上就OK了
总结:
搜索控件丰富多彩,我只爱自定义,哈哈哈!!!