读了一篇Android实现弹出输入法时,顶部固定,中间部分上移的效果文章之后,大致方法已经知道,可是怎么调都调不对,因此笔者试了各种方法,最后才发现由于一个小细节才没有局部上移的效果。
具体步骤如下:
(1)在AndroidManifest.xml中配置的activity标签里添加android:windowSoftInputMode="stateAlwaysHidden|adjustResize"属性,stateAlwaysHidden可以不加,adjustResize一定要加。
(2)如果activity是全屏,请去掉全屏属性,否则无法有此效果。笔者就是在这一步中招了,由于个人习惯,喜欢设置全屏的activity,所以导致无法完成局部上移的效果。
(3)最后,布局文件如下:
<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> <!-- 固定布局 fillViewport表示子布局填充满-->
<!-- 该scrollview的子布局期盼是使用具体高度,尽量不用matchparent属性->
</ScrollView> <RelativeLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentBottom="true"> <EditText android:id="@+id/edittext" android:layout_width="match_parent" android:layout_height="30dp" android:layout_alignParentBottom="true" /> </RelativeLayout> </RelativeLayout>