一个bar,左边开头是个图标带文字的长按钮,右边都是搜索输入框。
现在要求左边按钮能通过一个平滑的动画收缩和展开,就是说右边搜索输入框会随着动画平滑动作。我一开始使用属性动画,改变按钮的width来实现,但有个问题,因为按钮里的文字是可切换的,如果一个伸缩动画后,textview的width就从wrap_content变成了固定值,这时候再切换不同长度的文字,就跟按钮的长度不匹配了。请问怎么既保证动画效果,又能在动画后切换文字时,按钮的长度也能wrap新的文字长度?谢谢!

解决方案 »

  1.   

    你监听动画的开始和结束,开始的时候隐藏文字,结束后显示就行了,剩下的就是给textview设置正确的LayoutParam
      

  2.   


    问题在于动画后设置LayoutParam无效了,因为动画时设置了width为定值了,之后再设置LayoutParam的width为wrap_content就不起作用,宽度始终为那个定值。所以我想问的是,如何在setWidth()为一个定值后,再将width属性变回原来的wrap_content? 现在试来发现就算再设了LayoutParam为wrap_content,也会被那个定值覆盖而不生效。