ScrollView内部嵌套Recyclerview,防止recyclerview自动获得焦点


在写一个ScrollView 嵌套Viewpager和RecyclerView的布局时,RecyclerView老是自动获得焦点然后在ScrollView

内部上下自动滚动,尝试了在ScrollView的直接子LinearLayout使用

   android:focusable="true"
   android:focusableInTouchMode="true" 

但在一些情况下 ScrollView还是会自动获得焦点然后滚动起来,最后的方案  

 解决方案:

   在ScrollView下面的LinearLayout加上android:descendantFocusability="blocksDescendants"属性, 截获ListView的焦   点, 从而达到禁止ScrollView自动滚动.顺便解释下这个属性的其他用法:

   该属性是当一个为view获取焦点时,定义viewGroup和子控件两者之间的关系。属性的值有三种:

    beforeDescendants:viewgroup会优先其子类控件而获取到焦点

    afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

    blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

你可能感兴趣的:(安卓开发笔记)