Android RecyclerView Laggy内置嵌套滚动视图/线性布局

Android RecyclerView Laggy内置嵌套滚动视图/线性布局,android,android-recyclerview,android-nestedscrollview,Android,Android Recyclerview,Android Nestedscrollview,在深入研究代码之前,我已经检查了以下问题: 上面提到的问题对我都不起作用。滚动时,RecyclerView太慢 我有一个NestedScrollview和一个LinearLayout作为NestedScrollview的主布局。布局的代码是: <android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_widt

在深入研究代码之前,我已经检查了以下问题:

  • 上面提到的问题对我都不起作用。滚动时,
    RecyclerView
    太慢

    我有一个
    NestedScrollview
    和一个
    LinearLayout
    作为
    NestedScrollview
    的主布局。布局的代码是:

    <android.support.v4.widget.NestedScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:fbutton="http://schemas.android.com/apk/res-auto"
    >
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center"
        >
    
    <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/frag_misc_rv_margin_top"
            android:scrollbars="none"
            android:nestedScrollingEnabled="false"
            android:id="@+id/frag_showcase_promotion_recyclerview"/>
    
        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>
    
    mPromotionsRv.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.HORIZONTAL,false));
    mPromotionsRv.setNestedScrollingEnabled(false);
    mPromotionsAdapter = new ShowcasePromotionRvAdapter(getActivity(), mPromotionsItems);
    mPromotionsAdapter.setOnItemClickListener(new ShowcasePromotionListener() {
            @Override
            public void onClick(View view, int position) {
                ItemPromotion mPromotion = mPromotionsItems.get(position);
                try{
                    recordPromotionClick(mPromotion.getId());
                    view.getContext().startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse(mPromotion.getPromotion_link())));
                } catch (Exception e){
                    e.printStackTrace();
                }
            }
        });
    
        mPromotionsRv.setAdapter(mPromotionsAdapter);
        SnapHelper snapHelperStart = new GravitySnapHelper(Gravity.START);
        snapHelperStart.attachToRecyclerView(mPromotionsRv);
    
    
        RecyclerView.ItemAnimator animator = mPromotionsRv.getItemAnimator();
        if (animator instanceof SimpleItemAnimator) { ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false); }
    

    由于您的RecyclerView是水平的,请尝试将您的RecyclerView的宽度设置为“包裹内容”。

    基本上不管怎样,将
    wrap\u内容
    RecyclerView
    一起使用总是会有使用太多资源的风险。我尝试过设置高度,但实际上没有任何帮助。