似乎这是一个常见的问题,而我尚未找到一个很好的解决方案。目标是防止ScrollView
自动滚动到已聚焦的EditText
(或任何其他视图)。
您在一个ScrollView
中有许多视图(如Button
、TextView
等),其中一个是EditText
。在ScrollView
内点击一个按钮时,ScrollView
会向下滚动到EditText
(它在屏幕外)。但这不是期望的结果,因为还有其他元素不希望滚动到屏幕之外。
现在,当屏幕首次显示时,我可以通过在ScrollView
中添加其他可聚焦元素来阻止此情况发生。然而,一般问题仍然存在。用户手动向下滚动到EditText
,输入一些数字,然后向上滚动到顶部(EditText
现在已经不在屏幕上),他们在ScrollView
中点击一个按钮,你猜怎么着?ScrollView
又会滚动到那个可恶的EditText
。
我正在考虑扩展ScrollView
并覆盖一些方法,例如findFocusableViewInBounds
,但我觉得这只会让自己陷入更多麻烦。
如果您能帮忙,敬请赐教。
我尝试过各种方法,例如在我的ScrollView
顶部添加高度为0的EditText
、将其他项目中的Next Focusable属性添加到ScrollView
中等。也许一个“hack”的方法是当虚拟或手动键盘隐藏或其他情况时使EditText
失去焦点。