我有一个包含5 EditText
和a Button
和a TextView
底部的布局.现在,当我按下时EditText
,键盘将会显示,而我的所有键盘都会View
向上推.
现在,我不想把我的TextView
和Button
上面的键盘,仅仅只希望所有的推升 EditText
内ScrollView
到键盘上方.
我有个主意.当键盘显示和隐藏时我会倾听.当键盘显示我将设置ScrollView的下边距=键盘高度,当键盘隐藏我将设置此margin = 0.
有没有更容易处理我的情况?任何帮助或建议将非常感谢.
更新
如果我使用windowSoftInputMode=adjustPan
=>并非所有EditText
都推到键盘上方
如果我使用windowSoftInputMode=adjustResize
=> Button
,TextView
所有EditText
都推到键盘上方
无法使用-没有可靠的API可以检测到何时显示键盘。您会在此站点上看到“解决方案”,但是它们具有错误的肯定和否定。但这对您来说似乎最好的事情是将softInputMode设置为AdjustPan。这将使操作系统以使光标在键盘上方可见所需的最小量滚动整个屏幕。(整个应用程序在键盘上方的位置取决于模式AdjustResize)。
在所有Nexus移动和平板电脑设备上测试过.它工作正常.我正在使用您的布局xml代码,并且只在视图中添加了id.
我在我的生产应用程序中使用以下库,它非常有前景.要实现相同的效果并在app gradle中添加以下行:'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.0.1' 这是相同的链接.
有关其余代码,请参阅以下要点:清单代码,活动代码,活动布局代码.