ScrollView与RecyclerView嵌套问题

今天开发时,遇到了几个ScrollView与RecyclerView嵌套导致的问题。

1. 进入页面时,layout没有置顶

ScrollView与RecyclerView嵌套问题_第1张图片
进入页面.jpeg

root cause: 由于在ScrollView内嵌套了RecyclerView,导致RecyclerView获取到了焦点
solution: 使ScrollView包裹的View获取到焦点
如下所示,在LinearLayout里增加 android:focusable="true"和 android:focusableInTouchMode="true"这两个属性
reference: https://blog.csdn.net/suwenlai/article/details/72902684




    

        

        

            

        
    

2.RecyclerView显示不全

root cause: 可能是RecyclerView的onMeasure问题
solution1: 重写LinearLayoutManager,可能可以解决
solution2: 使用NestScrollView,而不是ScrollView
reference: https://blog.csdn.net/ThugKd/article/details/78196970





    

        

        

            

        
    

3.NestedScrollView与RecyclerView滑动冲突

root cause: NestedScrollView与RecyclerView嵌套
solution: recyclerView.setNestedScrollingEnabled(false);
reference: https://www.jianshu.com/p/791c0a4acc1c

    @Override
    protected void initView() {
        mAdapter = new PassengerInfoAdapter();
        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_flight_order_detail);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.addItemDecoration(new ListDivider(this, ListDivider.HORIZONTAL_LIST, R.drawable.passenger_info_divider));

        // 修复NestedScrollView与RecyclerView滑动冲突
        recyclerView.setNestedScrollingEnabled(false);
        recyclerView.setAdapter(mAdapter);
    }

你可能感兴趣的:(ScrollView与RecyclerView嵌套问题)