我的设计中有一个输入EditText
,其中包含一组输入单元选项(RadioGroup
已满RadioButtons
)。当用户选择某个选项时,我已实施ViewGroup.LayoutParams
将宽度调整为所需的值。
一切正常,但是当我添加animateLayoutChanges
以改善整体外观时,EditView
中的光标会受到负面影响:
EditText
中)RadioButton
选项更改为具有相同大小输入的选项,则该条目将移至相应位置... EditText
的另一个操作时,它会再次刷新.. 我试图通过以下方式解决这个问题:
setText()
append("")
添加任何内容.requestFocus()
中呼叫EditText
.invalidate()
如果有人知道我如何可能刷新视图以便更新文本位置或以其他方式禁用此视图上的动画,同时保留所有其他非常棒的内容!
谢谢!
答案 0 :(得分:0)
毕竟我最终找到了解决方案..!这是针对那些可能处于类似情况的人。我将animateLayoutChanges设置为false并自定义动画其他过渡 - 在我的情况下,EditText旁边的TextViews出现并在更改大小时消失。我必须使用.animate()。alpha(float)方法,如下所示。
变得可见:
textViewFractionIn.setVisibility(View.VISIBLE);
textViewFractionIn.animate()
.alpha(1.0f)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
// Has to be blank it seems to override the previous .setListener in the GONE case?
}
});
让它变得不可见(在这种情况下为GONE):
textViewFractionIn.animate()
.alpha(0.0f)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
textViewFractionIn.setVisibility(View.GONE);
}
});
根据默认情况,这会动画视图的淡入淡出,但视图的任何移动都是离散的,因此EditText光标保持在正确的位置!