当我预先填充EditText字段时,我希望能够将浮动标签放在适当的位置。加载视图时,在将文本设置为浮动标签之前,提示仍会显示在文本后面。在支持库的TextInputLayout中似乎没有这方法。有什么想法吗?
答案 0 :(得分:8)
答案 1 :(得分:1)
基于Gabriels的回答我在加载视图层次结构后编写了一个小方法来运行,该层次结构在初始显示时禁用动画但在病房之后启用它。将其添加到您的基础活动/片段/视图中,它将解决它的问题。
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);
}
}
}
答案 2 :(得分:0)
我使用下面的代码获得了解决方案,我尝试使用xml但不能更长时间工作,您可以尝试以编程方式将提示设置为 TextInputLayout 和 TextInputEditText
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new MyViewModel();
}
}