EditText转换时保留提示信息可见

13
在我的应用程序中,我正在使用Android Activity Slide过渡。我遵循了一个不错的教程,除了我的EditText的提示(包含在InputTextLayout中)之外,一切都按预期工作。
<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/activity_vertical_margin">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:hint="Your name"/>
</android.support.design.widget.TextInputLayout>

所有的组件都有很好的动画效果,但提示在动画开始之前就会弹出,并保持在最终位置。我需要添加一些额外的代码来告诉框架也要对提示进行动画吗?
根据Android开发者文档,它应该可以工作(或者至少不是不支持的)。
我正在使用22.2版本的Support Design库。
如果有人能指点我正确的方向,那就太棒了。

在Android 5.1.1和Support库版本23.1.1上也注意到了同样的问题,有人找到解决方案吗? - Seb Jachec
1
不支持库24中未固定 :( - Sudara
2个回答

8

尝试这个解决方案,它对我有效:

当你有超过一个TextInputLayout时,请将TextInputLayout放入容器中。

inputTextPanel : LinearLayout
  TextInputLayout
    login : EditText
  TextInputLayout
    password : EditText

并且在onCreateView中:

setContentView(R.layout.login_layout)
configuration(fromSdk = 21) {
    inputTextPanel.isTransitionGroup = true
}

如果你只有一个,你可以直接
myTextInputLayout.isTransitionGroup = true

4
谢谢你提供这个好的解决方案。你也可以在xml文件中添加android:transitionGroup="true"属性以增加简洁性。只需将其添加到每个TextInputLayout中,避免添加额外的LinearLayout嵌套。 - tylerjroach

1

这是一个bug。我一直在寻找解决方法。我使用的解决方案是在动画之前将edittext的提示设置为空,并在动画完成后设置edittext提示。但我不知道这是否是您想要做的。


1
这是一个解决方法,但在材料设计指南的意义上也不太流畅。我认为我们必须等待官方修复。 - dmorawetz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接