问题 保持TextInputLayout始终聚焦或保持标签始终扩展


我想知道是否有可能始终保持标签扩展,无论是否有文本 EditText。我在源头环顾四周,这是一个使用 ValueAnimator 和a counter 在里面 TextWatcher 动画或不动画更改。也许我可以设定一个习惯 TextWatcher 有一个习惯 ValueAnimator 在...上 EditText 在 - 的里面 TextInputLayout


13174
2018-01-30 02:14


起源



答案:


当前版本的 TextInputLayout 专门做一件事 - 根据是否有一些文本显示/隐藏助手标签 EditText 或不。你想要的是不同的行为,所以你需要一个不同的小部件 TextInputLayout。这种情况是编写适合您需求的自定义视图的理想选择。

那就是说,你设定一个自定义的想法 TextWatcher 到了 EditText 也不会工作因为 TextInputLayout 没有暴露任何实际处理动画的内部构件 - 两者都没有 updateLabelVisibility()setEditText(), 魔术 Handler 做的工作或其他任何事情。当然我们肯定不想去这样的细节的反射路径,所以......

只是用 MaterialEditText!它具有以下属性,可以完全满足您的需求。

met_floatingLabelAlwaysShown:始终显示浮动标签,而不是动画输入/输出。默认为False。

该库非常稳定(我自己在两个不同的项目中使用它)并且有很多自定义选项。希望能帮助到你!


8
2018-02-22 22:19



关于材料edittext lib的好处,我以前见过lib,但我想我可以推断一些逻辑来专门为我的用例创建一个自定义组件:thumbs_up: - AndyRoid
是的,正如我在第一段中所说的那样 - 这是自定义文本视图的完美候选者。祝你好运! - Vesko
我同意这个解决方案,thx @Vesko - wanz


答案:


当前版本的 TextInputLayout 专门做一件事 - 根据是否有一些文本显示/隐藏助手标签 EditText 或不。你想要的是不同的行为,所以你需要一个不同的小部件 TextInputLayout。这种情况是编写适合您需求的自定义视图的理想选择。

那就是说,你设定一个自定义的想法 TextWatcher 到了 EditText 也不会工作因为 TextInputLayout 没有暴露任何实际处理动画的内部构件 - 两者都没有 updateLabelVisibility()setEditText(), 魔术 Handler 做的工作或其他任何事情。当然我们肯定不想去这样的细节的反射路径,所以......

只是用 MaterialEditText!它具有以下属性,可以完全满足您的需求。

met_floatingLabelAlwaysShown:始终显示浮动标签,而不是动画输入/输出。默认为False。

该库非常稳定(我自己在两个不同的项目中使用它)并且有很多自定义选项。希望能帮助到你!


8
2018-02-22 22:19



关于材料edittext lib的好处,我以前见过lib,但我想我可以推断一些逻辑来专门为我的用例创建一个自定义组件:thumbs_up: - AndyRoid
是的,正如我在第一段中所说的那样 - 这是自定义文本视图的完美候选者。祝你好运! - Vesko
我同意这个解决方案,thx @Vesko - wanz


对于我支持设计23.3.0,它可以使用

              <android.support.design.widget.TextInputLayout
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:hint="wow such hint"
              app:hintEnabled="true"
              app:hintAnimationEnabled="false"
              />

8
2017-07-01 10:26



这对v25.0.2不起作用;文本为空时不展开标签。 - Desmond Lua