AndroidネストXRecyclerViewのスライドの遅さと引き上げがうまくいかない解決策

2648 ワード

まず、ScrollViewがXrecyclerViewなどのリストコントロールをネストする場合、アップロード・リフレッシュを必要としない場合はScrollViewを直接使用できますが、アップロード・リフレッシュの必要がある場合はNestedScrollViewを選択する必要があります.あまり話さないで、コードを見てください.
 


        
        

        

1つ目のScrollViewネストには、プルアップする必要のないリストコントロールがあります.
    1.//ScrollViewネストされたRecyclerViewのスライド遅延の問題を解決するmEveluateList.setHasFixedSize(true);         mEvaluateList.setNestedScrollingEnabled(false);
    2.RecyclerViewのマネージャLinearLayoutManager linearLayoutManager=new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false){@Override public boolean canscrollVertically(){return false;            }
        };
  mEvaluateList.setLayoutManager(linearLayoutManager );
これら2つともScrollViewネストRecyclerViewやListViewなどのスライドの遅い問題を実現できる.
2番目のScrollViewネストには、リストコントロールのコアコード()が必要です.
 
//LinearLayoutManager     ,setOrientation               。
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mEvaluateList.setLayoutManager(layoutManager);
mEvaluateList.setPullRefreshEnabled(false);//  XrecyclerView      


//  ScrollView  RecyclerView      
mEvaluateList.setHasFixedSize(true);
mEvaluateList.setNestedScrollingEnabled(false);

Scrollview.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
    @Override
    public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
        if (scrollY > oldScrollY) {
            //     
        }

        if (scrollY < oldScrollY) {
            //     
        }

        if (scrollY == 0) {
            //   
        }

        if (scrollY == (v.getChildAt(0).getMeasuredHeight() - v.getMeasuredHeight())) {
            //       
        }
    }
});

NestedScrollViewにXrecyclerViewをネストした後、ページに入ってリストの最下位に直接ジャンプした場合、ルートに属性の行を追加します:android:descendantFocusability="blocksDescenendants"