AndroidSDK目前提供的软键盘弹出模式接口只有两种:
一是弹出时自动回冲界面,将所有元素上顶
一种则是不重绘界面,直接将控件元素遮住
没有其他模式,如果想实现其他效果,光使用系统接口是不行的。
解决办法:
1.给想要 被顶上去的内容加一个ScrollView包起:
<ScrollView
android:layout_width="match_parent"
android:layout_height="440dp">
...想要被顶上去的内容...
</ScrollView>
2.在AndroidManifest.xml中给对应的Activity设置:
android:windowSoftInputMode="adjustResize"
一般来说经过上两步之后问题就解决了,但发现当给ScrollView加上android:scrollbars="none"属性之后就不管用了。这时候只需要在Activity的onCreate()中添加一句话:(这个时候AndroidManifest.xml中的设置可以不要)
3.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
adjustResize和adjustPan的区别:
adjustResize软件盘会压缩整个window,导致界面显示扭曲
adjustPan则只会遮盖下面一部分内容,不对整个window进行压缩,但如果多次点击同一个输入框,只有第一次会让内容上移
注意:如果Activity的主题是全屏的那么这个设置就无效
没有其他模式,如果想实现其他效果,光使用系统接口是不行的。
解决办法:
1.给想要 被顶上去的内容加一个ScrollView包起:
<ScrollView
android:layout_width="match_parent"
android:layout_height="440dp">
...想要被顶上去的内容...
</ScrollView>
2.在AndroidManifest.xml中给对应的Activity设置:
android:windowSoftInputMode="adjustResize"
一般来说经过上两步之后问题就解决了,但发现当给ScrollView加上android:scrollbars="none"属性之后就不管用了。这时候只需要在Activity的onCreate()中添加一句话:(这个时候AndroidManifest.xml中的设置可以不要)
3.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
adjustResize和adjustPan的区别:
adjustResize软件盘会压缩整个window,导致界面显示扭曲
adjustPan则只会遮盖下面一部分内容,不对整个window进行压缩,但如果多次点击同一个输入框,只有第一次会让内容上移
注意:如果Activity的主题是全屏的那么这个设置就无效