Android系统 联系人APP,新建联系人时进行横屏切换,左侧头像区域底部显示不全Bug修复

1.问题场景:

新建联系人时进行横屏切换,左侧头像区域底部显示不全,如下图所示:

Android系统 联系人APP,新建联系人时进行横屏切换,左侧头像区域底部显示不全Bug修复_第1张图片

 

2.布局分析:

(1)land/contact_editor_fragment.xml源文件:



    

    
    

    

        

            

            

        

    

其中,photo_editor_view.xml布局如下:



    

    

    

    

 

(2)分析:

这是一个呈左右方向分布的布局,左边为头像部分是一个继承自相对布局的自定义view,右边为ScrollView展示个人信息列表,乍一看并没有啥问题。

3.代码分析:

首先,我的第一个想法是,将左边的view用scrollview包裹,然后也使用android:fillViewport="true"属性使scrollview内容充满屏幕;重新编译后,安装到平板上并没有达到理想的效果,左边部分变得可以滚动,并且头像被拉长,只有上下拖动才能完整显示。

然后,我发现,在竖屏时如果没有弹出软键盘,在翻转到横屏时就不会出现头像显示不全的问题。因此,我在onConfigurationChanged 方法中隐藏了键盘,可惜还是徒劳。

最后,我研究了scrollview和activity的 android:windowSoftInputMode属性,发现软件盘弹起时会占用activity的主窗口空间,影响与用户的交互,网上有些博客建议在最外层包裹ScrollView,我试了之后没有起到作用,考虑到ScrollView也是继承自FrameLayout,因此我使用FrameLayout对左边的布局做了一层包装,最后测试Ok,根本原因还有待继续深究,欢迎大家一起探讨。  

 

Android系统 联系人APP,新建联系人时进行横屏切换,左侧头像区域底部显示不全Bug修复_第2张图片Android系统 联系人APP,新建联系人时进行横屏切换,左侧头像区域底部显示不全Bug修复_第3张图片

 

4.问题解决:

针对land/contact_editor_fragment.xml源文件左边布局,外面包裹了一层FrameLayout,具体如下所示:


    

    	

    

    
    

    

        

            

            

        

    



 

你可能感兴趣的:(系统开发,Contacts,ScrollView)