如何在填充TextInputLayout中包含的EditText字段时禁用浮动标签动画

时间:2015-08-20 16:31:17

标签: android android-support-library

当我预先填充EditText字段时,我希望能够将浮动标签放在适当的位置。加载视图时,在将文本设置为浮动标签之前,提示仍会显示在文本后面。在支持库的TextInputLayout中似乎没有这方法。有什么想法吗?

3 个答案:

答案 0 :(得分:8)

使用支持设计库 v23 ,您可以使用:

domain.com?lang=en

您可以在这里找到javadoc

答案 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();
    }
}