android - ScrollView 向下滚动并在点击 EditText 以获得焦点时突然向上滚动

标签 android android-layout uiscrollview

我有一个 ScrollView 。在其中,我有类似卡片的布局,其中包含 EditText。我的问题是,当我向上滚动 ScrollView 并点击其中一张卡片中的一个 EditText 时,ScrollView 首先向下滚动,然后突然再次向上滚动,就像 EditText 被 SoftKeyboard 覆盖一样。只有在 EditText 中有焦点时才会发生这种情况。如果已经有焦点,则 View 重新排列仅在 EditText 被软键盘覆盖时发生。

I understand the scrolling up of ScrollView when the EditText is being covered with SoftKeyboard. But, why the scrollview tries to re-arrange the position of the EditText even it is not being covered with SoftKeyboard ?

用户仍然可以看到他正在输入的内容。但是,这会损害用户体验。

我正在为“windowsSoftInputMode”使用“adjustPan”。但是,我已经尝试了此属性中可用的任何内容。是一样的。

我什至尝试在单独的布局中复制 ScrollView 作为根容器和一堆 EditText。但是,它工作正常。

The weirdest thing is that scrolling down and suddenly scrolling up back (mentioned above) doesn't happen on the topmost card.

我想了解的是,如果 EditText 必须请求 requestFocus,当用户点击时还没有焦点时, View 如何在 ScrollView 上发生重新排列。

如果您以前遇到过这种怪事,请告诉我。

最佳答案

如果有人遇到过这种情况,以下是我在患病近 2 天后发现的情况。

发生这种情况的原因是我正在使用 translationY 为卡片的移动设置动画。当卡片的 translationY 值与容器内定义的卡片的实际位置相同时(包括 topMargin 和高度),当您将焦点放在进入这种容器内的 EditText 时,ScrollView(卡片的根容器)突然移动(将 EditText 插入屏幕底部,然后将 EditText View 推回到 SoftKeyboard 的顶部)。

我仍然不知道为什么会这样。但是,我确实相信 requestFocus 方法实现与 translationY 值 有关,以确保 View 位于 SoftKeyboard 之上。

关于android - ScrollView 向下滚动并在点击 EditText 以获得焦点时突然向上滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29786797/

相关文章:

android - gammu - 在指定的超时时间内没有响应。应该是手机没连接

android - 显示解析通知,打开操作不会启动 Activity

java - ScrollView 始终可聚焦

android - 在android中膨胀层形状列表

swift - 为什么 View Controller 在 UIScrollView 上方滚动?

ios - 仅在 UIScrollView 内的正确位置加载可见内容

Android:帮助使用 ImageLoader 类 (LazyList) 适配 ListView 适配器

android - 如何在Listview android中添加第一个字母在右垂直的字母部分索引器

java - 单击按钮时滑入另一个 XML 布局

ios - 如何使用 Autolayout 对我的 UIScrollview 设置约束?