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ネストには、リストコントロールのコアコード()が必要です.
NestedScrollViewにXrecyclerViewをネストした後、ページに入ってリストの最下位に直接ジャンプした場合、ルートに属性の行を追加します:android:descendantFocusability="blocksDescenendants"
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"