java - 单击时如何展开/折叠 EditText?
问题描述
我想创建一个动画以在单击 EditText(到我设置的高度)时展开它,并且当它失去焦点(我单击其他内容)时,它应该折叠回一行。这是我尝试过的,但它什么也没做..
public class CollapseDownAnimation extends Animation {
private EditText mDescription;
private boolean mDown;
public CollapseDownAnimation(EditText description, boolean down) {
this.mDescription=description;
this.mDown=down;
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation transformation) {
int newHeight;
if(mDown) {
newHeight=(int) (300 * interpolatedTime);
} else {
newHeight=(int) (300 * (1-interpolatedTime));
}
mDescription.getLayoutParams().height=newHeight;
mDescription.requestLayout();
}
@Override
public void initialize(int width, int height, int parentWidth, int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
}
@Override
public boolean willChangeBounds() {
return true;
}
}
EditText mDescription;
mDescription = view.findViewById(R.id.description);
CollapseDownAnimation anim = new CollapseDownAnimation(mDescription, mDescription.hasFocus());
anim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
Log.d(TAG, "the focus is "+mDescription.hasFocus());
mDescription.setAnimation(anim);
解决方案
推荐阅读
- swift - 如何在 Swift 中从谷歌地图中删除行进路径
- sql - 具有特定于该行的硬编码值的未透视行上的输出列
- python - 如何使用 GDAL/OGR 栅格化(在 jupyter 笔记本中),EPSG 中矢量文件的 crs:4326
- javascript - Redux-Persist 不会将 store 保存到 localStorage
- ansible - Ansible 同步模块在复制部分文件后冻结
- list - prolog中的嵌套列表
- reactjs - firebase 新手,不确定为什么“createdAt”字段未在 Chat 组件中呈现
- flutter - aes/cbc/pkcs5padding 为颤振加解密
- android - 如何在andorid中获取所有视频文件
- java - javax.validation.constraints.Email 规则应用于它所使用的字段