美文网首页
ScrollView嵌套RecyclerView显示不全

ScrollView嵌套RecyclerView显示不全

作者: jiluyixia | 来源:发表于2021-04-12 20:45 被阅读0次

    ScrollView里面有多个RecyclerView,发现其中一个显示不全,只显示一行,第二行需要拖动才显示出来。
    纳闷的半天,发现是加载这个页面的时候,这个RecyclerView刚好在屏幕的最底下。

    网上找到一个办法:https://blog.csdn.net/lyh1299259684/article/details/78494655

    第二种:在你的RecyclerView上再嵌套一层RelativeLayout然后添加属性 android:descendantFocusability="blocksDescendants",既然提到了这个属性就说下它的意思吧,知道的同学再复习一遍呗,巩固巩固更牢靠。

    首先该属性android:descendantFocusability的含义是:当一个view获取焦点时,定义ViewGroup和其子控件两者之间的关系。

    它一共有3个属性值,它们分别是:

    beforeDescendants:viewGroup会优先子类控件而获取焦点

    afterDescendants:viewGroup只有当子类控件不需要获取焦点的时候才去获取焦点

    blocksDescendants:viewGroup会覆盖子类控件而直接获取焦点

    想必了解了这个属性之后,你就会恍然大悟啦。

    <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:descendantFocusability="blocksDescendants">
            <android.support.v7.widget.RecyclerView
                 android:id="@+id/rv_me_window"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:paddingLeft="16dp"
                 android:paddingRight="16dp"
                 android:overScrollMode="never"/>
    </RelativeLayout>
    

    另外,ScrollView嵌套RecyclerView会影响滑动,需要禁止RecyclerView的滑动事件。

    自定义RecyclerView:

    /**
     * 取消事件消费
     */
    public class NoRecyclerView extends RecyclerView {
        public NoRecyclerView(@NonNull Context context) {
            super(context);
        }
    
        public NoRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs) {
            super(context, attrs);
        }
    
        public NoRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
        }
    
        @Override
        public boolean onTouchEvent(MotionEvent e) {
            return false;
        }
    
        @Override
        public boolean onInterceptTouchEvent(MotionEvent e) {
            return false;
        }
    
    }
    

    相关文章

      网友评论

          本文标题:ScrollView嵌套RecyclerView显示不全

          本文链接:https://www.haomeiwen.com/subject/ugcflltx.html