我最終通過禁用RecyclerView從滾動來修復它,除非它接收到觸摸事件。
首先,我定製一個LayoutManager:
@Override
public int scrollHorizontallyBy(int dx, RecyclerView.Recycler recycler, RecyclerView.State state) {
if(!horizontal) {
return 0;
}
@Override
public int scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state) {
if(!vertical) {
return 0;
}
時收到click事件: 我設置水平和垂直爲false,這些原因RecyclerView不能滾動任何更多!
,我子類recyclerView和覆蓋的onTouchEvent:
public boolean onTouchEvent(MotionEvent e) {
//we enable scrollHorizontallyBy and scrollVerticallyBy only in Touch Event, set layoutManager vertical and horizontal to true
......
return super.onTouchEvent(e);
}
所以MyRecyclerView不能滾動時點擊發現焦點孩子是一個EditText。但是當接收觸摸事件時它可以滾動!
將此代碼添加到您的活動中聲明您的清單 - > android:windowSoftInputMode =「stateVisible | adjustPan –
它不起作用,實際上我想要的是recyclerview根本不滾動,或者告訴我scrollX和scrollY何時它自動滾動,但它似乎不會通知任何已註冊的RecyclerView.OnScrollListener當它在這種情況下滾動!這導致我大問題......我使用:com.android.support:recyclerview- V7:22+ –