搜索框中搜索符号居中

在Android开发时,常常会添加搜索框,有时更会高仿ios搜索控件,将搜索符号显示在搜索框的中间,当点击搜索框时,又将搜索按钮移到左侧。如下图演示(生成gif被压缩了)
这里写图片描述

先给搜索框添加布局

<RelativeLayout
        android:id="@+id/relative_search"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_margin="10dp"
        android:focusable="true"
        android:background="@drawable/search_relative_bg"
        android:focusableInTouchMode="true" >

        <com.example.searchiconincenter.widget.EditTextWithClear
            android:id="@+id/et_search"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_centerVertical="true"
            android:background="@null"
            android:drawableLeft="@drawable/search_icon"
            android:drawablePadding="10dp"
            android:gravity="center_vertical"
            android:hint="输入关键词"
            android:imeOptions="actionSearch"
            android:singleLine="true"
            android:textSize="13sp" />
   </RelativeLayout>

Activity中初始化搜索icon位置

search_et.post(new Runnable() {
                public void run() {
                    RelativeLayout.LayoutParams lp_search_v = (RelativeLayout.LayoutParams) search_et
                            .getLayoutParams();
                    mEditTextSlidLen = (search_relative.getWidth() - search_et
                            .getWidth()) / 2;
                    lp_search_v.width = search_relative.getWidth();
                    search_et.setLayoutParams(lp_search_v);
                    search_et.setTranslationX(mEditTextSlidLen);
                }
            });

搜索icon左移

search_et.animate().setDuration(500).translationX(0).start();

搜索icon恢复居中

search_et.animate().setDuration(500)
                        .translationX(mEditTextSlidLen).start();

提供下载demo

注:demo中参考博文《Android之监听手机软键盘弹起与关闭》监听软键盘弹起与收缩,来实现搜索icon的移动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值