【发布时间】:2015-12-02 07:11:42
【问题描述】:
在我的应用程序中,一些视图由 Animator 调整大小,一切正常,直到出现软键盘。当我在动画完成后点击EditText 时,EditText 的高度会在软键盘出现之前回到 xml 高度。
详情: 假设我们有一个简单的布局,只有一个按钮和一个文本编辑框:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button"
android:text="start anim"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/text"
android:layout_below="@id/button"
android:background="@android:color/holo_blue_bright"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="Hello World!" />
</RelativeLayout>
还有简单的动画师:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:propertyName="bottom"
android:duration="500"
android:valueTo="200dp"
android:valueFrom="56dp"
android:repeatCount="0"
android:valueType="intType"
/>
</set>
然后当点击按钮上的事件时,我运行动画:
final EditText editText = (EditText) findViewById(R.id.text);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AnimatorSet show = (AnimatorSet) AnimatorInflater.loadAnimator(MainActivity.this, R.animator.expand_edit_text);
show.setTarget(editText);
show.start();
}
});
到目前为止还可以。但是当我点击EditText 并出现软键盘时,EditText 会回到之前的高度。
如何避免这种影响?并使动画持久化/永久化?
我发现类似问题没有回复Android showing keyboard cancels animation
【问题讨论】:
标签: android android-animation android-softkeyboard