Android-UI-关于View-一种toolbar和ScrollView同时存在且软键盘遮挡ScrollView中的Edittext的解决办法

问题描述

前段时间在忙工作室的招新app的时候遇到了一种难缠的情况,描述一下出问题的布局:


      
      
    
        
           
        
        
        
    

需求是点击Edittext的时候需要屏幕移动到该Edittext所在位置(最上方的3个控件要保持原来的位置,一直不变),且软键盘不能遮挡

尝试的方法

  • 首先想到的是在Manifest里面给对应的Activity设置android:windowSoftInputMode="adjustPan"属性,但是会遇到ScrollView上面的3个控件一齐被挤出了屏幕之外,效果非常丑陋。

  • 上面的方法不行后,尝试过通过监听被点击的Edittext在屏幕中的相对位置,计算尺ScrollView需要移动的距离,并使用ScrollView的scrollTo方法手动移动至目标位置(这方法有点蠢),但是太复杂了,最终没有采用。

  • Google,必应的其他方法都是剑走偏锋。

解决方法

  1. 给RelativeLayout设定 android:fitsSystemWindows="true"属性。
  2. 给ScrollView设定android:overScrollMode="never"。
  3. 在Manifest里面为Activity设定android:windowSoftInputMode="stateUnchanged|adjustResize|stateHidden"属性。
  4. 问题解决,终于可以忙下一个项目了(╯‵□′)╯︵┻━┻

你可能感兴趣的:(Android-UI-关于View-一种toolbar和ScrollView同时存在且软键盘遮挡ScrollView中的Edittext的解决办法)