弹出输入文本框上弹的动画效果

先看以下简单的模型图片效果,有图才有真相:

 

 

软键盘弹出效果:

 

 

 

 

终极效果实现:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

效果呢就是这样:

简单解释一下:由于显示页面要承载很多的信息内容,所以在让用户发布动态的时候,要求从页面的底部以动画的方式向上抽出。当弹出软键盘输入法的时候,要避免输入框被全部遮挡或者部分遮挡。则,软键盘要把输入文本框顶起来,完全的托起来。

那么,就要完成这几步骤:

1,在该页面的类中(Actiivty或者fragment),在加载该布局之前添加这句话,其作用是使文本框根据软键盘弹出自动调节位置和大小:
 

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

 

2,完成布局的布置,布局最好使用帧布局把该输入文本框放置最外层的最下面,并设置GONE。

3,在点击发布动态的按钮监听中要实现以动画的效果弹出并被软键盘托起:

Animation animation = AnimationUtils.loadAnimation(getActivity(), R.anim.pop_bottom_in);

                edtInput.setVisibility(View.VISIBLE);

          //获取文本输入的焦点
                edtInput.startAnimation(animation);
		edtInput.setFocusable(true);
		edtInput.setFocusableInTouchMode(true);
		edtInput.requestFocus();

          //弹出软键盘
                InputMethodManager inputMethodManager=(InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
		inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);


4,监听输入文本框的文字要用到一个监听的方法:

edtInput.addTextChangedListener(this);


其实现的方法:

@Override
	public void beforeTextChanged(CharSequence s, int start, int count,
			int after) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void onTextChanged(CharSequence s, int start, int before, int count) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void afterTextChanged(Editable s) {
		// TODO Auto-generated method stub
		int num=140-s.length();
		tvLengthNum.setText(num + "");
	}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值