当我预填EditText字段时,希望浮动标签已经就位。当视图加载时,在文本后面动画化浮动标签之前,仍然显示提示。在Support Library的TextInputLayout中似乎没有这个方法。您有什么想法吗?
当我预填EditText字段时,希望浮动标签已经就位。当视图加载时,在文本后面动画化浮动标签之前,仍然显示提示。在Support Library的TextInputLayout中似乎没有这个方法。您有什么想法吗?
根据Gabriels的答案,我编写了一个小方法,在加载视图层次结构后运行它可以在初始显示时禁用动画,但在此后启用动画。将此代码添加到您的基本Activity / Fragment / View中,它将解决此问题。
private void setTextInputLayoutAnimation(View view) {
if (view instanceof TextInputLayout) {
TextInputLayout til = (TextInputLayout) view;
til.setHintAnimationEnabled(false);
til.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override public boolean onPreDraw() {
til.getViewTreeObserver().removeOnPreDrawListener(this);
til.setHintAnimationEnabled(true);
return false;
}
});
return;
}
if (view instanceof ViewGroup) {
ViewGroup group = (ViewGroup) view;
for (int i = 0; i < group.getChildCount(); i++) {
View child = group.getChildAt(i);
setTextInputLayoutAnimation(child);
}
}
}
我使用下面的代码解决了问题,尝试使用 XML 但是长期不起作用,你可以尝试在TextInputLayout和TextInputEditText上编程设置提示。
TextInputLayout hintView = (TextInputLayout) findViewById(R.id.activity_login_inputlayout_password);
hintView.setHintAnimationEnabled(false);
hintView.setHint("");
yourEditTextPassword.setHint(getString(R.string.text_password_hint));