最近再做一个聊天界面的时候,遇到一个问题,就是点击edittext后,输入法会把整个布局给顶上去,查了好多资料蛋都没法解决问题,最终经过询问同事才解决了这个问题,下面我就说一下解决方法。
第一步:
在res文件夹下面新建一个文件夹anim,然后在哪anim下面新建四个动画文件。分别如下:
slide_in_from_right
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="200" android:fromXDelta="100%p" android:toXDelta="0" /> </set>
slide_out_to_left
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="200" android:fromXDelta="0" android:toXDelta="-100%p" /> </set>
slide_in_from_left
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="200" android:fromXDelta="-100%p" android:toXDelta="0" /> </set>
slide_out_to_right
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="200" android:fromXDelta="0" android:toXDelta="100%p" /> </set>第二步:在values下面的styles中新建一个styles,如下:
<style name="horizontal_slide" parent="android:style/Theme.Holo.Light.NoActionBar"> <item name="android:windowAnimationStyle">@style/AnimFade2</item> </style> <style name="AnimFade2" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/slide_in_from_right</item> <item name="android:activityOpenExitAnimation">@anim/slide_out_to_left</item> <item name="android:activityCloseExitAnimation">@anim/slide_out_to_right</item> <item name="android:activityCloseEnterAnimation">@anim/slide_in_from_left</item> </style>第三步:在清单文件中对应的activity中进行设置,如下:
<activity android:name=".activity.Add_MessageActivity" android:launchMode="singleTop" android:screenOrientation="portrait" android:theme="@style/horizontal_slide" android:windowSoftInputMode="adjustResize"/>经过上面四步以后就大功告成了,这个问题纠结了我好几天,解决了后感觉很好。