android 隐藏输入法时自动关闭弹窗,android 仿QQ搜索框自动弹出、收起输入法

虽然是一个简单的功能,但是记录下来分享给大家!

在开发APP过程中少不了要使用到搜索功能,像手机QQ搜索,点一下弹出一个新的透明窗口并弹出输入法,点搜索结果自动收起输入法,那么这是怎么办到的呢,而且搜索框还附有向上的动画!

先看下我的效果图:

b8ef88c5a594374e8d77d859da987b37.gif点击事件触发代码y = search_layout.getTop();

TranslateAnimation animation = new TranslateAnimation(0, 0, 0, -y);

animation.setDuration(200);

animation.setFillAfter(true);

//显示移动动画

animation.setAnimationListener(new AnimationListener() {

@Override

public void onAnimationRepeat(Animation animation) {

}

@Override

public void onAnimationStart(Animation animation) {

}

@Override

public void onAnimationEnd(Animation animation) {

Intent intent = new Intent(getActivity(),

NewActivity2015.class);

startActivityForResult(intent, 1000);

}

});

getView().startAnimation(animation);//getView()为当前窗口最外层布局

@Override

public void onActivityResult(int requestCode, int resultCode, Intent data) {

// TODO Auto-generated method stub

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == 1000) {

TranslateAnimation animation = new TranslateAnimation(0, 0, -y, 0);

animation.setDuration(520);

animation.setFillAfter(true);

getView().startAnimation(animation);

}

}

在弹出来的NewActivity2015中实现以下代码,分别是用来弹出键盘和关闭键盘的代码@Override

protected void onResume() {

// TODO Auto-generated method stub

super.onResume();

if (search_edit != null) {

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

imm.showSoftInput(search_edit, InputMethodManager.RESULT_SHOWN);

imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,

InputMethodManager.HIDE_IMPLICIT_ONLY);

}

}

@Override

protected void onPause() {

// TODO Auto-generated method stub

super.onPause();

if (search_edit != null) {

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(search_edit.getWindowToken(), 0);

}

}

是不是很简单呢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值