NestedScrollView内嵌套RecyclerView,打开页面时不显示在顶部的解决方法

由于新需求要求:个人信息页面最顶部要增加两条姓氏全拼,姓名全拼,需求文档如下:

NestedScrollView内嵌套RecyclerView,打开页面时不显示在顶部的解决方法_第1张图片

之前布局用的是NestedScrollView内嵌RecyclerView,RecyclerView位于子布局的第一个,显示效果上没有什么问题。xml布局如下:




    

    

        
            

        
    

 

本来也想把新需求的两条用RecyclerView,但是布局相差太多,逻辑处理上比较繁琐,后来决定在RecyclerView上面增加两个子布局用来显示姓氏全拼,姓名全拼,xml布局如下:



    

    

        
            
                

                
                


                

                
            
            
                

                


                


                
                

            
            

        
    

修改完需求后,在手机打开页面并没有达到预期的效果,布局没有显示在顶部,如下图所示:

NestedScrollView内嵌套RecyclerView,打开页面时不显示在顶部的解决方法_第2张图片

需要向下滑动才显示出来

通过在网上查找,找到了解决方法,原来在这种情况下 RecyclerView会率先获取焦点,因此就会造成打开页面时不是显示在顶部,而是到一个RecyclerView上。

解决方案就是将焦点从新手动放给顶部的控件

在NestedScrollView的第一个子布局中加入
android:focusable="true"

android:focusableInTouchMode="true"

在第一个RelativeLayout中添加上面两句代码,修改后xml布局如下:




    

    

        
            
                

                
                


                

                
            
            
                

                


                


                
                

            
            

        
    

打开页面,显示效果如下:

NestedScrollView内嵌套RecyclerView,打开页面时不显示在顶部的解决方法_第3张图片

问题解决

你可能感兴趣的:(android进阶)