布局中上面一个子布局,中间一个listview,下面一个edittext,解决edittext点击后输入法遮盖布局的问题

本文介绍了解决Android应用中点击EditText时输入法导致布局上移的问题。通过创建自定义动画和主题样式,实现软键盘弹出时平滑过渡效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近再做一个聊天界面的时候,遇到一个问题,就是点击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"/>
经过上面四步以后就大功告成了,这个问题纠结了我好几天,解决了后感觉很好。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值