【问题标题】:Why doesn't EditText get focus with setFillAfter(true)?为什么 EditText 不使用 setFillAfter(true) 获得焦点?
【发布时间】:2016-05-04 02:16:30
【问题描述】:

因此,当您在 EditText 字段上将可见性设置为 INVISIBLE 时,它不想获得键盘焦点。

我通过在动画完成后更改这些字段的可见性来解决此问题,如下所示:

       edit_text.setVisibility(View.INVISIBLE);
       final Animation fadeInAnimation = AnimationUtils.loadAnimation(getActivity(), R.anim.fade_in_view);
       fadeInAnimation.setFillAfter(true);
       edit_text.startAnimation(fadeInAnimation);
       edit_text.setVisibility(View.VISIBLE);

但我想知道为什么它没有得到焦点。 setFillAfter(true) 不应该再次将它们设置为可见吗?

【问题讨论】:

  • 您可以拨打edit_Text.requestFocus();
  • 您没有启动动画或将动画设置为 Edittext 所以即使这是真的它在您的情况下也不起作用,其次View.GONE 是我确信它不会使Edittext 获得焦点,但我怀疑是不可见的.. 我可能是错的
  • JibranKhan 我想知道为什么它没有,这会迫使键盘弹出吗?我不希望这种行为。 @Elltz 这是一个错字,不可见显然确实消除了焦点
  • 动画所做的是将View 上的 alpha 设置为 0.0 和 1.0,对我来说这就是 View.INVISIBLE-(0.0) 所做的,因为它占用屏幕空间但它是透明的,所以我不认为它会剥夺它的视图调用-(这是一个想法)但我会接受你的,因为你确定,requestFocus() 也不一定意味着键盘将被强制向上,它实际上有点,这意味着无论是否在触摸模式下,该视图都可以聚焦。
  • 你知道 petro 将你的解决方案作为答案发布并回滚编辑,+1 .. 我猜你的原因已被回答

标签: java android android-animation


【解决方案1】:

setFillAfter(boolean fillAfter) 的描述是

如果 fillAfter 为真,则 这个动画的改造 执行时将持续存在 完成了。

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2019-08-15
    相关资源
    最近更新 更多